我一直在试图追查为什么 CMakefind_package
在我的构建中找到了错误的包。从CMake find_package:它在哪里找到包?我学会了如何让它告诉我它正在搜索的路径,以及它在哪里找到了包。但是现在我需要弄清楚为什么CMake 正在搜索某个路径,因为它出于某种原因在非默认位置进行搜索。我检查了变量
CMAKE_MODULE_PATH
CMAKE_PREFIX_PATH
CMAKE_INCLUDE_PATH
CMAKE_LIBRARY_PATH
CMAKE_PROGRAM_PATH
但它们是空的。变量
CMAKE_SYSTEM_PREFIX_PATH
是非空的,但它包含的只是
/usr/local;/usr;/;/usr;/tmp/pip-req-build-ckl98h8g/build/lib.linux-x86_64-3.6
所以这不是原因。
还有什么可以让 CMake 搜索一些奇怪的前缀?
确切的问题如下:find_package(yaml-cpp)
正在搜索如下:
...
Checking prefix [/]
Checking file [/yaml-cppConfig.cmake]
Checking file [/yaml-cpp-config.cmake]
Checking prefix [/usr/games/]
Checking file [/usr/games/yaml-cppConfig.cmake]
Checking file [/usr/games/yaml-cpp-config.cmake]
Checking prefix [/usr/local/games/]
Checking file [/usr/local/games/yaml-cppConfig.cmake]
Checking file [/usr/local/games/yaml-cpp-config.cmake]
Checking prefix [/snap/]
Checking file [/snap/yaml-cppConfig.cmake]
Checking file [/snap/yaml-cpp-config.cmake]
Checking prefix [/home/farmer/repos/gambit/copy3/build/contrib/yaml-cpp-0.6.2/]
Checking file [/home/farmer/repos/gambit/copy3/build/contrib/yaml-cpp-0.6.2/yaml-cppConfig.cmake]
Checking file [/home/farmer/repos/gambit/copy3/build/contrib/yaml-cpp-0.6.2/yaml-cpp-config.cmake]
它在最后一个路径中找到包配置文件。但那是一些其他代码的私有构建目录,所以我不知道为什么find_package
要在那里搜索。一定是某个地方的某个变量告诉它这样做,但我不知道是哪一个。我不希望搜索此路径。