我在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
可见?
答案 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