linux 编译器找不到libxml/parser. h

bqjvbblv  于 2023-03-17  发布在  Linux
关注(0)|答案(5)|浏览(328)

我使用的是Debian 8(杰西),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从一台计算机迁移到另一台计算机时出现问题。所有我需要的其他-dev库刚刚工作(带有其文档#include <path>)迁移后(它们都是与apt-get一起安装的),编译时仅找不到libxml2-dev
我还需要做什么才能使libxml2-dev可见吗?

to94eoyn

to94eoyn1#

如果已安装:sudo apt-get install libxml2-dev libxml2-doc进入/usr/include/libxml2并复制或移动该文件夹中以下级别所有内容:cp -R libxml/ ../在这之后,对我来说它起作用了。

kd3sttzy

kd3sttzy2#

尝试在parser.h文件所在的位置使用显式包含进行编译,例如smth,如下所示
g++ -I/usr/include/libxml2/
以下环境变量也可用于查找头文件

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH

在此查找更多信息

nmpmafwu

nmpmafwu3#

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

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

就是这样,环境变量和编译器开关都没有改变。

mspsb9vt

mspsb9vt4#

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

uemypmqf5#

我在Ubuntu 20.04中遇到了同样的问题,将**/usr/include/libxml 2重命名为/usr/include/libxml2_bak**对我很有效。

相关问题