我安装了两个版本的 Ceres 求解器。一个在/opt/local/lib
,另一个在/usr/local/lib/
,我正在使用 cmake 构建一个使用后者的应用程序。在我的build
子目录中,以下工作正常:
cmake -DCeres_DIR=/usr/local/lib/cmake/Ceres/ ..
我宁愿按照本文所述在CMakeLists.txt
文件中指定正确的路径,但以下失败:
find_package(Ceres PATHS /usr/local/lib/cmake/Ceres)
当我这样做时,cmake 会抱怨,因为它发现CeresConfig.cmake
使用不同版本的 Eigen 构建的错误文件:
CMake Error at /opt/local/lib/cmake/Ceres/CeresConfig.cmake:85 (message):
Failed to find Ceres - Found Eigen dependency, but the version of Eigen
found (3.4.0) does not exactly match the version of Eigen Ceres was
compiled with (3.3.9).
....
显然是不是在使用 Ceres/opt/local/lib
安装/usr/local/lib
。为什么PATHS
规范在这种情况下不起作用?