错误:未知类型名称'CURL'

时间:2015-07-27 03:20:42

标签: c curl libcurl openwrt

我编写了一个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包列表?我似乎无法找到它们。

1 个答案:

答案 0 :(得分:1)

所以我能够解决我的问题,但我猜不是&#34;正确&#34;。

显然,我正在运行的OpenWRT发行版使用完全不同的 libcurl 库,当我尝试卸载它时, opkg 包管理器警告我因为它也使用了当前安装的libcurl库,如果我删除它可能会中断。

因此,我从Github手动安装了我需要的 libcurl 版本,然后在我的代码中使用了正确的引用来代替使用其他版本。

感谢大家帮助我朝着正确的方向前进。