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