2013-08-30 107 views
1

我有以下問題,我需要使用expat.h庫,我通常包括圖書館:C++和未定義的參考XML_Parser

#include <expat.h> 

但是當我嘗試創建一個對象

XML_Parser Parser = XML_ParserCreate(NULL); 

Eclipse keppler返回對XML_ParserCreate的未定義引用。我檢查了圖書館,幷包括在內。 我使用Ubuntu 13.04和g ++編譯器。

有什麼想法嗎?

+0

顯示Eclipse啓動的各種構建命令,特別是最終的鏈接命令。我懷疑它缺少'-lexpat' –

回答

1

也許你沒有鏈接到圖書館。您應該將此-lexpat添加到編譯器的命令行。例如:

g++ main.cc -lexpat -o exe 

更先進的(更易於使用,當你加快速度)的選項是使用pkg-config作爲例如$(pkg-config --libs expat)

+0

我將-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

+0

@jtula不同的錯誤,並可能是一個不同的問題和答案。 – WhozCraig

+0

是真的,對不起。感謝您的答案。 – Anthord