OS X - PKG_CONFIG_PATH导致空pc_path,找不到包

时间:2015-05-29 08:08:57

标签: build homebrew pkg-config

首先关闭:我使用OS X 10.10 Yosemite,我从终端,没有XCode IDE或其他涉及的GUI做任何事情。我从Homebrew安装了pkg-config版本0.28。

我想构建一些依赖于Ogre 1.8的软件。我构建并安装了OGRE(通过CMAKE_INSTALL_PREFIX)到我主目录中的自定义位置。

布局如下:

~/install/bin              contains binaries  
~/install/include          contains OGRE include headers  
~/install/lib              contains static libraries, e.g. libOgreMainStatic.a
~/install/lib/pkgconfig   contains *.pc files for Ogre, e.g. OGRE.pc

在我添加PKG_CONFIG_PATH的路径之前,我得到了这个:

$ pkg-config --variable pc_path OGRE
Package OGRE was not found in the pkg-config search path.
Perhaps you should add the directory containing `OGRE.pc'
to the PKG_CONFIG_PATH environment variable
No package 'OGRE' found

这是预期的行为。然后我将~/install/lib/pkgconfig添加到我的PKG_CONFIG_PATH中,如下所示:

$ export PKG_CONFIG_PATH=~/install/lib/pkgconfig
$ echo $PKG_CONFIG_PATH 
/Users/myusername/install/lib/pkgconfig

正在运行

$ pkg-config --variable pc_path OGRE
  <empty line while I expected the path to OGRE.pc>

再次只显示一个空行但是没有错误信息。

当我现在为我想要构建的软件运行CMake时,它说:

$ cmake .
<snip>
-- checking for module 'OGRE'
--   package 'OGRE' not found

我做错了什么?在Linux上,它使用相同的命令。

1 个答案:

答案 0 :(得分:1)

问题在于OGRE.pc引用了Freetype以及我从源代码构建的一些其他要求。虽然Ogre能够找到它们,因为它们位于CMAKE_INSTALL_PREFIX pkgconfig设置的路径中,但并不是因为它们没有提供* .pc文件。

我通过使用此命令发现了这一点:

修复前:

$ pkg-config --libs OGRE
Package zziplib was not found in the pkg-config search path.
Perhaps you should add the directory containing `zziplib.pc'
to the PKG_CONFIG_PATH environment variable
Package 'zziplib', required by 'OGRE', not found

修复后:

$ pkg-config --libs OGRE
-L/Users/myusername/install/lib -L/Users/myusername/install/lib/OGRE -lOgreMainStatic -lpthread -lboost-thread-mt -lfreeimage