libxml / parser.h:在c ++中ubuntu

时间:2014-11-04 10:54:23

标签: c++

即使我已经在我的ubuntu 12.04版本中再次安装了libxml ++ 2.6-2 libxml ++ 2.6-doc等,我收到以下错误         致命错误:libxml / parser.h:没有这样的文件或目录 我正在使用make来构建项目

     Kindly suggest any other libxml libraries which I need to install

4 个答案:

答案 0 :(得分:2)

  1. libxml/parser.hlibxml库的一部分,而不是libxml++

  2. 对于任何给定的库,您需要开发包(名称以-dev结尾的开发包)才能使用该库构建应用程序。

  3. 您需要将额外的标志传递给编译器:xml2-config --cflags和链接器xml2-config --libs

答案 1 :(得分:1)

在向有回答的人发帖回答之前,但这些答案对我不起作用

I have just copied libxml folder from the directory usr/lib/libxml2 and pasted in usr/lib directory and compiled my code it is not giving any error. It is working fine now. 

答案 2 :(得分:0)

我现在无法访问Ubuntu系统,但是:您可能需要安装libxml开发包吗?也许你只有图书馆而不是包含文件?

/usr/include/usr/local/include,...中查看目录libxml和文件parser.h

如果找到该文件,则可能需要调整makefile以使父目录位于包含路径列表中,例如:
INC = -I/usr/local/include g++ $(INC) ...

如果找不到该文件:检查开发人员包的可用libxml包并安装它。

答案 3 :(得分:0)

请在阅读本文之前阅读@ el.pescado答案。我想对这个答案发表评论,但觉得有必要更好地格式化我的代码。

gcc -c <files to compile> `xml2-config --cflags` -o <object files>
gcc <object files> -L<libxml2 lib location> `xml2-config --libs` -o <binary file>

假设我们的文件名xmltest.c的代码包含libxml2标题#include <libxml/parser.h>libxml2共享库的标准位置,即/usr/lib64/libxml2,上面的代码会像这样评估:

gcc -c xmltest.c -I/usr/include/libxml2 -o xmltest.o
gcc xmltest.o -L/usr/lib64/libxml2 -lxml2 -lz -lm -o xmltest

更好的想法是将Makefile放在一起自动执行此操作。