我正在尝试使用Cmake链接外部构建的库来创建Visual Studio解决方案。对于我的可执行文件,我使用:
target_link_libraries( exe_target import_target )
并且导入目标被声明为
add_library(import_target STATIC IMPORTED)
import_target的文件名是import.lib,所以我用
set_target_properties(import_target PROPERTIES IMPORTED_LOCATION "import.lib")
但是当我生成项目时,我生成的exe试图与“ import_target.lib”链接。 CMake文档中列出的IMPORTED_属性似乎都没有任何影响(例如,共享库的IMPORTED_IMPLIB)。它的行为就好像import_target不是目标,而是.lib文件的简单文件名。
我需要做什么来强制CMake链接正确的文件名?
似乎您使用的IMPORTED_LOCATION
目标属性似乎不正确。从文档中,此属性应设置为:
导入目标的磁盘上主文件的完整路径。
因此,您需要为库设置完整路径,包括库名称:
IMPORTED_LOCATION