我有以下问题,我需要使用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' –