【问题标题】:GCC can't find curl libraryGCC 找不到 curl 库
【发布时间】:2015-02-04 19:18:09
【问题描述】:

我有一个 Dragino Yun Shield(它基本上是一个 Arduino Yun,运行 OpenWRt Linino)并且我已经安装了 GCC,如下所述:

http://www.sniff.org.uk/2014/05/building-gcc-for-yun-in-12-not-easy.html

编译器似乎可以很好地满足我的需要(除了一些浮点警告),但我遇到了问题。我的 C 程序需要 curl 库,但链接器找不到它:

gcc -shared -fPIC kii_cloud.c kii_custom.c kii_prv_utils.c -L jansson -I curl -I jansson -l jansson -l curl -o libkii.so
/mnt/sda1/gcc/bin/ld: cannot find -lcurl
collect2: ld returned 1 exit status
make: *** [build] Error 1

但安装了 libcurl 包:

> opkg files libcurl
Package libcurl (7.29.0-1) is installed on root and has the following files:
/usr/lib/libcurl.so.4
/usr/lib/libcurl.so.4.3.0

似乎没有可用的 libcurlX-dev 软件包(就像在大型 Linux 发行版中一样)。

有没有办法解决这个问题? /usr/lib/libcurl.so 是链接器想要的吗?

最好的问候和感谢。

【问题讨论】:

    标签: gcc curl arduino openwrt kiicloud


    【解决方案1】:

    尝试将 -L/usr/lib 传递给您的调用。如果这不起作用,请尝试添加 -m32 然后在另一个调用 -m64 中都使用 -L 选项。

    gcc -shared -fPIC kii_cloud.c kii_custom.c kii_prv_utils.c -Ljansson -Icurl -Ijansson -ljansson -lcurl -o libkii.so -L/usr/lib

    【讨论】:

    • 非常感谢,但我用下面的答案解决了这个问题。无论如何,我真的很感谢您的意见(因为这对于其他类似情况很方便)。谢谢
    【解决方案2】:

    我通过创建如下符号链接解决了这个问题:

    cd /usr/lib
    ln -s libcurl.so.4.3.0 libcurl.so
    

    最好的问候

    【讨论】:

    • 我有同样的问题,但我使用的是 Arduino Yun。我尝试了这个解决方案,但没有奏效。在您的 C 程序中,您是否包含 curl/curl.h?
    • 对不起。我无法再访问这些文件或设备,我不记得了:(
    猜你喜欢
    • 2017-08-05
    • 2019-09-15
    • 2023-03-11
    • 2016-02-17
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多