gpt4 book ai didi

curl - CMake 在错误的路径上查找库

转载 作者:行者123 更新时间:2023-12-04 20:28:17 25 4
gpt4 key购买 nike

我正在尝试使用 CMake 来使用本地 32 位版本的 cURL,而不是已安装的 64 位版本。当我使用 CMake 命令 find_library 时,它仍然返回位于 /usr/lib/x86_64-linux-gnu/libcurl.so 的路径。我试过使用标志 NO_DEFAULT_PATH 和 NO_SYSTEM_ENVIRONMENT_PATH 但仍然不能强制它首先在本地查看。我的代码如下:

    find_library(MYCURL NAMES libcurl 
HINTS ${MY_CURL_DIR}
NO_SYSTEM_ENVIRONMENT_PATH
NO_DEFAULT_PATH)

我指定(并验证)${MY_CURL_DIR} 正在寻找正确的位置。有什么想法吗?

最佳答案

您是否在两次尝试之间删除了您的 CMakeCache.txt?或者更具体地说,CMakeCache.txt 中的 MYCURL 条目。 (此文件应存在于您从中调用 CMake 的目录中)。

如果 find_library 成功找到库,CMake 的进一步执行不会重试找到相同的库。

在您的命令中,NO_SYSTEM_ENVIRONMENT_PATH 选项是多余的 - NO_DEFAULT_PATH 停止搜索除 ${MY_CURL_DIR} 之外的任何路径。

此外,您可能不想搜索“libcurl”,只需搜索“curl”即可。 CMake 会在 UNIX 系统上为您添加“lib”。有关详细信息,请运行 cmake --help-variable CMAKE_FIND_LIBRARY_PREFIXES

如果您想更改find_library 的默认缓存行为并在每次运行CMake 时强制搜索,请先使用unset:

unset(MYCURL CACHE)
find_library(MYCURL NAMES curl HINTS ${MY_CURL_DIR} NO_DEFAULT_PATH)

关于curl - CMake 在错误的路径上查找库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9796766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com