我根本不想在每次需要库时设置环境变量,让搜索到的路径完全没有标准化(至少在Windows上)。通常,Find * .cmake不指定任何在Windows上具有关联的位置。
有没有办法让CMake搜索指定的目录(强制配置错误的Find * .cmake来搜索他们原本不会在系统级别设置的路径)?说我希望它搜索" C:\"或只是" /"在窗户上?这样我就可以将所有库放在" C:\"。
中答案 0 :(得分:5)
您可以尝试在项目CMakeLists.txt中追加CMAKE_PREFIX_PATH的路径,如下所示:
list(APPEND CMAKE_PREFIX_PATH "/tmp/test" "/another/library/path")
根据文档,它将附加" / lib"到列表中的每个路径的末尾并在那里搜索库,但是通过一些快速测试,如果cmake直接在你指定的路径中,它似乎应该找到好的东西。例如,如果我有/tmp/test/libtest.so
并添加上面的行,我可以这样找到:
find_library(libtest_LIBRARY test)
运行cmake应该使用正确的路径设置缓存变量libtest_LIBRARY
。