没有找到'libxml-2.0'软件包。

43

我正在尝试从https://wiki.documentfoundation.org/DLP/Libraries/libvisio将libvisio添加到我的Mac OS X中。

我已经添加了所有以下列出的依赖项:

boost
gperf
icu
librevenge
libxml2
perl
doxygen
在添加完依赖项后,我正在尝试运行以下命令。
$ ./autogen.sh ''# only needed for building from git''
$ ./configure
$ make
$ make install

但是我在第二个命令$ ./configure方面遇到了问题。

出现以下错误。

configure: error: Package requirements (
    libxml-2.0
) were not met:

No package 'libxml-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBXML_CFLAGS
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

我尝试使用$ brew install libxml安装libxml2,但它显示Warning: libxml2-2.9.3 already installed

我正在使用OS X 10.11.4。

能否有人在这里帮助我。谢谢。

7个回答

118

对于Ubuntu,以下方法对我有所帮助:

apt-get install libxml2-dev

1
对于libxml++2.6,使用sudo apt-get install libxml++2.6-dev进行安装。 - Dhiren Hamal

20

这也应该可以工作,因为我没有使用brew:

yum install libxml2-devel

1
我已经安装了libxml2...但是没有安装libxml2-devel。谢谢! - AceFunk
在EC2上对我来说没问题 - Mapotofu

10
高山滑雪
apk add libxml2-dev

9

所以,您已经使用brew安装了libxml2。当brew安装libxml2时,会向您说明:

margold@home-macbook ~ $ brew install libxml2
(...)
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.

OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/libxml2/lib
    CPPFLAGS: -I/usr/local/opt/libxml2/include
(...)

这意味着brew没有将libxml2符号链接到/usr/local/lib和/usr/local/include,也很可能没有在那里链接pkg-config文件,这就是为什么libvisio找不到它的原因。
因此,在运行./configure时,您必须指定libxml2的位置,就像brew和libvisio告诉您的那样:
./configure LIBXML_CFLAGS=-I/usr/local/opt/libxml2/include LIBXML_LIBS=-L/usr/local/opt/libxml2/lib

(您的系统上的路径可能有所不同,请务必检查!)

解决此问题的其他方法:

  • 直接使用brew安装libvisio
  • 将libxml的inlcude/lib/pkg-config文件建立符号链接到/usr/local/

1
这对我不起作用。你怎么知道 LIBXML_CFLAGSLIBXML_LIBS 的名称? - C. E.
我直接从问题中粘贴的 ./configure 错误消息中获取了它们。你应该仔细查看你得到的错误消息,看看它是否给你任何线索。你可能还需要安装 libxml2-devel,就像下面的答案所说的那样。 - margold
1
粘贴的消息来自Brew。就我所看到的,它没有提到"LIBXML_CFLAGS"和"LIBXML_LIBS"这两个名称。它只提到了它们的值应该是什么,这就是为什么我很好奇你是怎么知道它们应该被称为"LIBXML_CFLAGS"和"LIBXML_LIBS"的原因。 - C. E.

5

我在Ubuntu 16.04上使用源代码构建PHP 7.4时遇到了问题,通过使用上面提到的与OSX相同的方法并安装libxml2-dev的dev包,问题得以解决。

sudo apt-get install libxml2-dev
./configure LIBXML_CFLAGS=-I/usr/include LIBXML_LIBS=-L/usr/lib/x86_64-linux-gnu/ ....

2
谢谢,可以通过安装apt-get install pkg-config来解决,而不是设置每个库的路径。 - joaner
谢谢,实际上我的问题是 PKG_CONFIG_PATH 没有正确设置。我已经安装了 pkg-config,但路径指向的位置不正确(AWS 实例)。 - Thesane

1

未找到“libxml-2.0”软件包

意味着没有“/usr/lib/pkgconfig/libxml-2.0.pc”,通常在libxml2开发文件中可以找到,例如“libxml2-devel”。



是的,我认为它正在寻找 /usr/lib/pkgconfig/ 目录中的 libxml-2.0.pc,但是它不在那里。我注意到 libxml-2.0.pc 存在于其他目录,即 /usr/local/Cellar/libxml2/2.9.3/lib/pkgconfig 和 /usr/local/Library/ENV/pkgconfig/。那么我该如何将 libxml-2.0.pc 添加到 /usr/lib/pkgconfig/ 中呢?我对此完全不了解,所以如果我问了这样愚蠢的问题,请原谅。 - Rohan
libxml-2.0.pc:建议复制或链接到 /usr/lib/pkgconfig/。 - Knud Larsen

0
建议给你一个命令
apt install -y \
  autotools-dev \
 automake \
 libtool \
 gperf \
 libicu-dev \
 librevenge-dev \
 libxml2-dev \
 libcppunit-dev \
 perl \
 g++ \
 make \
 libboost-all-dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接