CMake设置默认搜索路径?

use*_*459 1 cmake

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

有什么方法可以使CMake搜索指定目录(强制配置错误的Find * .cmake搜索否则将不会在系统级别设置的路径)?说我希望它在Windows上的“ C:\”上搜索还是仅在“ /”上搜索?这样,我可以将所有库都放在“ C:\”中。

小智 6

您可以尝试在项目CMakeLists.txt 中将路径追加到CMAKE_PREFIX_PATH,如下所示:

list(APPEND CMAKE_PREFIX_PATH "/tmp/test" "/another/library/path")
Run Code Online (Sandbox Code Playgroud)

根据文档,它将在列表中每个路径的末尾附加“ / lib”并在其中搜索库,但是经过一些快速测试,如果cmake直接位于您指定的路径中,似乎可以找到一切。例如,如果我有/tmp/test/libtest.so并添加上面的行,则可以这样找到它:

find_library(libtest_LIBRARY test)
Run Code Online (Sandbox Code Playgroud)

运行cmake应该libtest_LIBRARY使用正确的路径设置缓存变量。