我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)
我指定(并验证)${MY_CURL_DIR}正在寻找正确位置的地方.有任何想法吗?
你是否在删除CMakeCache.txt尝试之间?或者更具体地说,MYCURL你的条目CMakeCache.txt.(此文件应存在于您调用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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4058 次 |
| 最近记录: |