2013-08-30 64 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