问题描述
我正在尝试在c ++项目上使用libxml2,但是我似乎无法设法正确链接库。
这里是parser.cpp(parse()来自xmlsoft.org上的示例)
#include <iostream>
#include <stdio.h>
extern "C"
{
#include <libxml/xmlreader.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
}
using namespace std;
void processNode(xmlTextReaderPtr reader){
if(reader!=NULL){
cout << "not null\n"<<endl;
}
}
void parse(const char *xmlFile){
xmlTextReaderPtr reader;
int ret;
reader = xmlReaderForFile(xmlFile,NULL,0);
if (reader != NULL) {
ret = xmlTextReaderRead(reader);
while (ret == 1) {
processNode(reader);
ret = xmlTextReaderRead(reader);
}
xmlFreeTextReader(reader);
if (ret != 0) {
fprintf(stderr,"%s : failed to parse\n",xmlFile);
}
} else {
fprintf(stderr,"Unable to open %s\n",xmlFile);
}
}
int main(int argc,char** argv)
{
if(argc < 2){
cout << "Please provide an XML file as Argument \n"<<endl;
}
parse(argv[1]);
return 0;
}
我用
进行编译g++ -I/usr/local/include/libxml2 parser.cpp
我得到以下错误:
/usr/bin/ld: /tmp/ccaeOdco.o: in function `parse(char const*)':
parser.cpp:(.text+0x64): undefined reference to `xmlReaderForFile'
/usr/bin/ld: parser.cpp:(.text+0x7b): undefined reference to `xmlTextReaderRead'
/usr/bin/ld: parser.cpp:(.text+0x9c): undefined reference to `xmlTextReaderRead'
/usr/bin/ld: parser.cpp:(.text+0xad): undefined reference to `xmlFreeTextReader'
collect2: error: ld returned 1 exit status
我已验证所包含文件中是否存在功能。我在做什么错了?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)