把我的评论变成答案
即使没有完全相同的环境,我也能够重现您的问题,并找到了两种可能的解决方案:
- 您将政策设置
CMP0060
为NEW
cmake_policy(SET CMP0060 NEW)
此策略的新行为是按完整路径链接库,即使它们位于隐式链接目录中也是如此。
- 您可以创建一个中间导入的库并使用
importED_LOCATION
(请参阅[CMake] TARGET_link_LIBRARIES和完整路径库)add_library(curl UNKNOWN importED)
set_property(TARGET curl PROPERTY importED_LOCATION “${CURL_LIBRARIES}”)
target_link_libraries(curl_ex curl)
这对我有用,但是根据CMake导入的库行为,您可能还需要设置
importED_IMPLIB。
背景
请检查的设置,
CMAKE_PLATFORM_IMPLICIT_link_DIRECTORIES因为此处列出的路径被视为“隐式”搜索路径,并且完整的库路径也已相应替换(请参见
cmComputelinkInformation::CheckImplicitDirItem()和
UnixPaths.cmake)。
message("CMAKE_PLATFORM_IMPLICIT_link_DIRECTORIES: ${CMAKE_PLATFORM_IMPLICIT_link_DIRECTORIES}")


