2013-10-28 102 views
0

假设在我的机器上protobuf安装在一些非标准的位置,我应该怎么做才能让find_package(Protobuf)找到它?指定自定义安装find_package(Protobuf)

也许CMAKE_LIBRARY_PATH可以做到这一点,但它很丑,因为其他find_package命令也会查看这个位置。我在寻找的是类似于BOOST_ROOT的Find_package(Boost),它仅由find_package(Protobuf)使用。

任何人都可以提供一些提示吗?我正在使用的操作系统是Linux。

回答

0

我建议使用CMAKE_PREFIX_PATH,这个变量(参考here)指定安装应用程序和/或库的附加前缀路径。它会导致查找模块和其他相关调用除了每个平台上的标准外,还会查找此前缀。如果您在/ home /用户/前缀已经protobuf的,然后使用

cmake -DCMAKE_PREFIX_PATH:PATH=/home/user/prefix ../src 

从构建目录会导致CMake的寻找在protobuf的/ home/user中/前缀。除了系统路径之外,我们使用这种方法强制CMake查找用户本地安装前缀。