我在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