2012-06-27 54 views
3

当我尝试编译使用GCC的ubuntu我的计划,我得到这些错误:未定义参考GCC

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

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

任何人都得到了线索?

回答

6

你不应该编译“json.h”头。未定义的参考是而不是编译器错误,这是一个链接器错误。这意味着你没有将包含json_value_free的文件编译到代码中,或者没有链接到包含它的库。您应该执行任一操作而不是尝试编译头文件本身。所以,如果你有一个单独的json.c文件,你必须编译并链接到你的main.c文件。尝试(我认为GCC):

gcc -o myprog main.c json.c 
+0

对不起,我想我没有让自己清楚:我试图编译main.c.问题是,json.h文件不在库中。这只是一个.h(和.c)文件,我导入并包括.. –

+0

我明白。看到我的进一步解释。 – 2012-06-27 18:59:14

+0

就是这样!谢谢! (可以和将在四分钟内接受你的答案) –