【问题标题】:libxml/parser.h: in c++ ubuntulibxml/parser.h:在 c++ ubuntu 中
【发布时间】: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++


    【解决方案1】:
    1. libxml/parser.hlibxml 库的一部分,而不是 libxml++

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

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

    【讨论】:

      【解决方案2】:

      我现在无法访问 Ubuntu 系统,但是:也许您需要安装 libxml 开发人员包?也许您只有库但没有包含文件?

      签入/usr/include, /usr/local/include, ... 以获取目录libxml 和文件parser.h

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

      如果您没有找到该文件:检查可用的 libxml 包以获取开发人员包并安装它。

      【讨论】:

        【解决方案3】:

        在发布答案之前感谢回答的人,但这些答案对我不起作用

        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. 
        

        【讨论】:

        • 嗯,弄乱操作系统中的文件并不是真正的方法。很难相信标志 -I/usr/include/libxml2 没有解决您的问题。
        【解决方案4】:

        在阅读本文之前,请阅读@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 &lt;libxml/parser.h&gt;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 放在一起。

        【讨论】:

          猜你喜欢
          • 2015-07-03
          • 1970-01-01
          • 1970-01-01
          • 2012-03-24
          • 1970-01-01
          • 2013-03-26
          • 1970-01-01
          • 2020-12-24
          相关资源
          最近更新 更多