编译器找不到libxml / parser.h

我在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位于完全相同的path,没有其他环境variables与新的Debian相比,它的工作原理非常好。 使用完全相同的makefile从一台计算机迁移到另一台计算机时出现问题。 所有其他的-dev库,我只需要在迁移之后(它们都是用apt-get安装的)进行工作(包括他们logging的#include <path> ),只有libxml2-dev在编译时没有find。

我需要做其他事情来使libxml2-dev可见吗?

尝试在parser.h文件所在的parser.h使用明确的包含进行编译,也就是说像这样

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


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

 CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH 

在这里找到更多信息

如果你安装了它: sudo apt-get install libxml2-dev libxml2-doc进入/usr/include/libxml2并复制或移动该文件夹下的所有内容: cp -R libxml/ ../在此之后有用。

您应该使用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