假设在我的机器上protobuf安装在某个非标准位置,我应该怎样做才能让它找到find_package(Protobuf)?
也许CMAKE_LIBRARY_PATH可以做到,但它很难看,因为其他find_package命令也会查看此位置。我正在寻找的东西类似于Find_package(Boost)的BOOST_ROOT,它仅由find_package(Protobuf)使用。
有人可以给一些暗示吗?我正在研究的操作系统是Linux。
答案 0 :(得分:0)
我建议使用CMAKE_PREFIX_PATH,此变量(引用here)指定安装应用程序和/或库的其他前缀路径。除了每个平台上的标准模块之外,它还使查找模块和其他相关调用查看此前缀。如果你在/ home / user /前缀中有protobuf,那么使用
cmake -DCMAKE_PREFIX_PATH:PATH=/home/user/prefix ../src
构建目录中的会导致CMake查找protobuf的/ home / user /前缀。除了系统路径之外,我们还使用这种方法强制CMake查看用户本地安装前缀。