首先关闭:我使用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上,它使用相同的命令。
答案 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