未定义的参考gcc

时间:2012-06-27 18:49:54

标签: c gcc ubuntu compilation

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

  

main.c :(。text + 0x162):未定义引用json_parse' main.c:(.text+0x182): undefined reference to json_value_free'

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

任何人都有线索?

1 个答案:

答案 0 :(得分:7)

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

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

gcc -o myprog main.c json.c