为find_package指定自定义安装(Protobuf)

时间:2013-10-28 06:56:05

标签: c++ cmake protocol-buffers

假设在我的机器上protobuf安装在某个非标准位置,我应该怎样做才能让它找到find_package(Protobuf)?

也许CMAKE_LIBRARY_PATH可以做到,但它很难看,因为其他find_package命令也会查看此位置。我正在寻找的东西类似于Find_package(Boost)的BOOST_ROOT,它仅由find_package(Protobuf)使用。

有人可以给一些暗示吗?我正在研究的操作系统是Linux。

1 个答案:

答案 0 :(得分:0)

我建议使用CMAKE_PREFIX_PATH,此变量(引用here)指定安装应用程序和/或库的其他前缀路径。除了每个平台上的标准模块之外,它还使查找模块和其他相关调用查看此前缀。如果你在/ home / user /前缀中有protobuf,那么使用

cmake -DCMAKE_PREFIX_PATH:PATH=/home/user/prefix ../src
构建目录中的

会导致CMake查找protobuf的/ home / user /前缀。除了系统路径之外,我们还使用这种方法强制CMake查看用户本地安装前缀。