【问题标题】:CMake Set Default Search Path?CMake设置默认搜索路径?
【发布时间】:2014-08-20 02:31:31
【问题描述】:

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

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

【问题讨论】:

    标签: cmake


    【解决方案1】:

    您可以尝试在项目 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。

    【讨论】:

    • 不明白你答案的第二行。但是第一个解决了我的问题!
    • 您也可以从命令行传递新路径:`cmake -CMAKE_PREFIX_PATH="/tmp/test" ..
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多