未定义的参考gcc

Tho*_*s K 5 c ubuntu gcc compilation

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

main.c :(.text + 0x162):对json_parse' main.c:(.text+0x182): undefined reference tojson_value_free的未定义引用

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

有人知道吗?

小智 7

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

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

gcc -o myprog main.c json.c
Run Code Online (Sandbox Code Playgroud)