编译器找不到libxml / parser.h

时间:2015-04-24 12:41:05

标签: linux include debian libxml2 suse

我在Debian 8(Jessie),64位。我安装了libxml2-dev,现在位于/usr/include/libxml2/libxml

但是当我这样做时(就像libxml文档说的那样)

#include <libxml/parser.h>

我只在编译时(使用gcc

fatal error: libxml/parser.h: no such file or directory

注意:在另一台机器上,使用旧的64位Suse,其中libxml2-dev位于完全相同的路径中,并且与新的Debian相比没有设置其他环境变量,它可以正常工作。使用完全相同的makefile从一台计算机迁移到另一台计算机时出现问题。 我需要的所有<{strong>其他-dev个库(在迁移后都记录了#include <path>)(它们全都安装了apt-get),只有{{1在编译时找不到。

我是否还需要执行其他操作才能使libxml2-dev可见?

4 个答案:

答案 0 :(得分:7)

如果你安装了它:sudo apt-get install libxml2-dev libxml2-doc进入/usr/include/libxml2并复制或移动该文件夹中以下级别的所有内容:cp -R libxml/ ../此后对我来说就可以了。

答案 1 :(得分:6)

尝试使用explicite include来编译parser.h文件,即smth就像这样

g++ -I/usr/include/libxml2/

以下环境变量也可用于查找头文件

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH

查找更多信息here

答案 2 :(得分:1)

我在 Centos 系统上遇到了同样的问题。我通过执行以下操作解决了它:

yum install libxml2-devel
cd /usr/include
ln -s libxml2/libxml .

就是这样。无需更改环境变量或编译器开关。

答案 3 :(得分:0)

您应该使用pkg-config将参数传递给编译器。喜欢这个

g++ `pkg-config --cflags libxml-2.0` example.c -o example.o

和链接器:

g++ `pkg-config --libs libxml-2.0` example.o -o example