C - 未定义对"json_tokener_parse"的引用



all。

我在OpenWRT linux发行版上使用JSON-C库时遇到问题。我在下面做了一个简单的程序来测试它

#include <json/json.h>
int main() {
    char * string = "{"name" : "joys of programming"}";
    json_object * jobj = json_tokener_parse(string);
}

然后我用下面的命令编译它。

gcc test.c -o test -ljson-c

然而,我得到了以下错误。

In function `main':
test.c:(.text+0x2c): undefined reference to `json_tokener_parse'
test.c:(.text+0x38): undefined reference to `json_tokener_parse'
collect2: ld returned 1 exit status

我甚至用下面的命令编译了它,但它仍然不起作用。

gcc -ljson-c test.c -o test

然后,我尝试在编译时添加-L参数,但仍然没有成功。

gcc test.c -o test -L/usr/lib -ljson-c

此OpenWRT发行版使用opkg作为其软件包安装程序,以下是我运行opkg-install-libjson-c时显示的内容。

Package libjson-c (0.11-2) installed in root is up to date.

我甚至用-E参数运行了compile命令,以查看是否使用了正确的头,看起来是这样,因为我可以找到方法声明json_tokener_parse。我真的不确定哪里出了问题。我正要从Github手动安装,但我并不想这么做,因为我还必须手动安装其他程序。有人有什么建议吗?

谢谢。

我自己刚刚遇到了这个问题,如果您显式链接库,它将编译并链接:gcc -g -v -Wall -std=gnu99 -static -L/path/to/json-c-0.9/lib main.c -o test1 -ljson

相关内容

  • 没有找到相关文章

最新更新