pkg-config 找不到 .pc 文件,尽管它们在路径中
Posted
技术标签:
【中文标题】pkg-config 找不到 .pc 文件,尽管它们在路径中【英文标题】:pkg-config cannot find .pc files although they are in the path 【发布时间】:2012-07-03 11:03:51 【问题描述】:我发现 Mac OSX-Lion 上的 pkg-config 存在一个奇怪的问题。为我下载的模块运行 python 设置时,我收到以下错误:
aspen:python toddysm$ sudo ./setup.py install
Password:
`pkg-config --libs --cflags cld` returns in error:
Package cld was not found in the pkg-config search path.
Perhaps you should add the directory containing `cld.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cld' found
The `cld` C++ library is absent from this system. Please install it.
但是,当检查 /usr/local/lib 文件夹时,我看到 libs 和 .pc 文件位于 pkgconfig 子文件夹中
aspen:~ toddysm$ cd /usr/local/lib/
aspen:lib toddysm$ ls -al
total 2640
drwxr-xr-x 6 root wheel 204 Jul 2 17:38 .
drwxr-xr-x 9 root wheel 306 Jul 2 15:17 ..
-rwxr-xr-x 1 root wheel 1339516 Jul 2 17:38 libcld.0.dylib
lrwxr-xr-x 1 root wheel 14 Jul 2 17:38 libcld.dylib -> libcld.0.dylib
-rwxr-xr-x 1 root wheel 918 Jul 2 17:38 libcld.la
drwxr-xr-x 3 root wheel 102 Jul 2 17:38 pkgconfig
aspen:lib toddysm$ cd pkgconfig/
aspen:pkgconfig toddysm$ ls -al
total 8
drwxr-xr-x 3 root wheel 102 Jul 2 17:38 .
drwxr-xr-x 6 root wheel 204 Jul 2 17:38 ..
-rw-r--r-- 1 root wheel 279 Jul 2 17:38 cld.pc
使用命令行将 PKG_CONFIG_PATH 设置为指向 /usr/local/lib/ 没有帮助。出于某种原因将其设置为 ~/.bash_profile 会使 pkg-config 无法识别为命令。
我的假设是我缺少一些依赖项,但不确定是什么。在 Linux 上尝试相同的操作时,我错过了 Python Dev 包 python2.7-dev 但我不确定如何在 Mac 上检查它(是否存在)。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您可以使用以下命令列出pkg-config
默认查找的目录:
pkg-config --variable pc_path pkg-config
PKG_CONFIG_PATH
需要将完整的 /usr/local/lib/pkgconfig
路径名附加到变量中。
【讨论】:
这是您上面提到的命令的完整内容。似乎在 pkg_config 路径中找到了 cld.cp 但错误具有误导性: @Brett Hale,不知道您可以查询默认值。是的,手册页包含了一切。谢谢!【参考方案2】:环境变量需要export
'ed 才能对命令有用。试试
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
$ pkg-config --libs --cflags cld
【讨论】:
【参考方案3】:似乎虽然 PKG_CONFIG_PATH
设置正确,但 Python 脚本并没有选择它。查看它在子进程中启动 pkg-config 的脚本,我不确定环境变量信息是否传递给子进程。
尽管如此,我还是通过将库和 .cp 文件复制到 /opt/local/lib/ 解决了这个问题,这是 pkg-config 所在的默认文件夹。
【讨论】:
【参考方案4】:你可以尝试如下:
brew install pkg-config
brew install libvirt
它对我有用。
【讨论】:
以上是关于pkg-config 找不到 .pc 文件,尽管它们在路径中的主要内容,如果未能解决你的问题,请参考以下文章
在 pkg-config 搜索路径中找不到软件包 libusb