我编写了一个C库,它利用 libcurl 库与REST API进行交互。我在基于debian的系统上写了这个,但现在我试图在运行OpenWRT发行版的Arduino上使用它。在尝试使用它时,我注意到编译器尝试使用 libcurl 库时出现问题,因此我编写了一个超级简单程序来测试它。
#include <curl/curl.h>
void main() {
CURL *curl;
}
然后我就这样编译了......
gcc -lcurl test.c -o test
并取回以下内容。
test.c: In function 'main':
test.c:4:2: error: unknown type name 'CURL'
libcurl 已安装在设备上。
Package libcurl (7.29.0-1) installed in root is up to date.
以下是运行 opkg文件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
最难以找出问题所在。 This链接是我发现的唯一一个与我的问题类似的东西,但解决方案并不适用于我。有没有人有任何建议?
感谢。
编辑:所以我想我发现了一些关于这个问题的更多信息。我想我也缺少很多libcurl开发包,因为我查看了 opkg.conf 文件,发现唯一的包列表是以下内容。
http://downloads.arduino.cc/openwrtyun/1/packages
也许我需要找到一个包含我需要的额外libcurl包的OpenWRT包列表?我似乎无法找到它们。
答案 0 :(得分:1)
所以我能够解决我的问题,但我猜不是&#34;正确&#34;。
显然,我正在运行的OpenWRT发行版使用完全不同的 libcurl 库,当我尝试卸载它时, opkg 包管理器警告我因为它也使用了当前安装的libcurl库,如果我删除它可能会中断。
因此,我从Github手动安装了我需要的 libcurl 版本,然后在我的代码中使用了正确的引用来代替使用其他版本。
感谢大家帮助我朝着正确的方向前进。