我有以下問題,我需要使用expat.h庫,我通常包括圖書館:C++和未定義的參考XML_Parser
#include <expat.h>
但是當我嘗試創建一個對象
XML_Parser Parser = XML_ParserCreate(NULL);
Eclipse keppler返回對XML_ParserCreate的未定義引用。我檢查了圖書館,幷包括在內。 我使用Ubuntu 13.04和g ++編譯器。
有什麼想法嗎?
我有以下問題,我需要使用expat.h庫,我通常包括圖書館:C++和未定義的參考XML_Parser
#include <expat.h>
但是當我嘗試創建一個對象
XML_Parser Parser = XML_ParserCreate(NULL);
Eclipse keppler返回對XML_ParserCreate的未定義引用。我檢查了圖書館,幷包括在內。 我使用Ubuntu 13.04和g ++編譯器。
有什麼想法嗎?
也許你沒有鏈接到圖書館。您應該將此-lexpat
添加到編譯器的命令行。例如:
g++ main.cc -lexpat -o exe
更先進的(更易於使用,當你加快速度)的選項是使用pkg-config
作爲例如$(pkg-config --libs expat)
。
我將-lexpat和-MM添加到compliler的命令行中,錯誤與庫expat.h disapear,但返回:'調用:交叉G ++鏈接器 g ++ -o「破折號」 ./src/Common/Trace.o ./src/Alphabet/AlphIO.o ./src/Alphabet/Alphabet.o ./src/Alphabet/AlphabetMap.o ./src/BigramLanguageModel.o ./src/LanguageModel.o ./src/TrainingHelper.o ./src/das.o ./main.o ./src/Common/Trace.o:無法識別文件:文件被截斷 collect2:錯誤:ld返回1退出狀態 make:* ** [破折號]錯誤1' – Anthord
@jtula不同的錯誤,並可能是一個不同的問題和答案。 – WhozCraig
是真的,對不起。感謝您的答案。 – Anthord
顯示Eclipse啓動的各種構建命令,特別是最終的鏈接命令。我懷疑它缺少'-lexpat' –