5

当我尝试使用 gcc 在 ubuntu 上编译我的程序时,出现以下错误:

main.c:(.text+0x162): undefined reference to json_parse' main.c:(.text+0x182): undefined reference tojson_value_free'

但是,这些函数包含在一个名为 json.h 的文件中,我将其导入 main.c 并包含在我的 gcc 命令中。

有人有线索吗?

4

1 回答 1

8

您不应该编译“json.h”标头。未定义的引用不是编译器错误,而是链接器错误。这意味着您没有将包含 json_value_free 的文件编译到您的代码中,或者没有链接到包含它的库。您应该执行任一操作,而不是尝试编译头文件本身。

所以,如果你有一个单独的 json.c 文件,你必须编译并将它也链接到你的 main.c 文件。尝试(我假设 GCC):

gcc -o myprog main.c json.c
于 2012-06-27T18:51:39.693 回答