【发布时间】:2016-12-30 05:25:55
【问题描述】:
即使我再次在我的 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
【问题讨论】:
标签: 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
【问题讨论】:
标签: c++
libxml/parser.h 是 libxml 库的一部分,而不是 libxml++
对于任何给定的库,您需要开发包(名称以 -dev 结尾的那些)才能使用该库构建应用程序。
您需要将其他标志传递给编译器:xml2-config --cflags 和链接器 xml2-config --libs。
【讨论】:
我现在无法访问 Ubuntu 系统,但是:也许您需要安装 libxml 开发人员包?也许您只有库但没有包含文件?
签入/usr/include, /usr/local/include, ... 以获取目录libxml 和文件parser.h。
如果您找到该文件,您可能需要调整您的 makefile,以便父目录位于包含路径列表中,例如:INC = -I/usr/local/include
g++ $(INC) ...
如果您没有找到该文件:检查可用的 libxml 包以获取开发人员包并安装它。
【讨论】:
在发布答案之前感谢回答的人,但这些答案对我不起作用
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.
【讨论】:
在阅读本文之前,请阅读@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 放在一起。
【讨论】: