2012-06-27 52 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

就是這樣!謝謝! (可以和將在四分鐘內接受你的答案) –