CMake设置默认搜索路径?

CMake设置默认搜索路径?,cmake,Cmake,我不想每次需要一个库时都设置一个环境变量,更别说搜索的路径根本没有标准化(至少在windows上)。通常,“查找*.cmake”不会在windows上指定任何具有关联的位置 是否有某种方法可以让CMake搜索指定目录(强制配置错误的Find*.CMake搜索它们在系统级别不会设置的路径)?比如说我想让它在windows上搜索“C:\”还是只搜索“/?这样,我就可以将我的所有库都放在“C:\”中。您可以尝试在您的项目CMakeLists.txt中添加路径,如下所示: list(APPEND CMA

我不想每次需要一个库时都设置一个环境变量,更别说搜索的路径根本没有标准化(至少在windows上)。通常,“查找*.cmake”不会在windows上指定任何具有关联的位置


是否有某种方法可以让CMake搜索指定目录(强制配置错误的Find*.CMake搜索它们在系统级别不会设置的路径)?比如说我想让它在windows上搜索“C:\”还是只搜索“/?这样,我就可以将我的所有库都放在“C:\”中。

您可以尝试在您的项目CMakeLists.txt中添加路径,如下所示:

list(APPEND CMAKE_PREFIX_PATH "/tmp/test" "/another/library/path")
根据文档,它会将“/lib”附加到列表中每个路径的末尾,并在那里搜索库,但通过一些快速测试,如果cmake直接位于您指定的路径中,它似乎会找到正确的结果。例如,如果我有
/tmp/test/libtest.so
并在上面添加了一行,我可以这样找到它:

find_library(libtest_LIBRARY test)

运行cmake应该将缓存变量
libtest\u LIBRARY
设置为正确的路径。

不理解答案的第二行。但是第一个解决了我的问题!您还可以从命令行传递新路径:`cmake-cmake_PREFIX_path=“/tmp/test”。。