如何防止CMake发布/ IMPLIB

10 c++ cmake

我有一个CMake构建,它将/ IMPLIB发送到Windows上的链接器.这是我的问题,因为implib的参数与其中一个输入文件的路径相同.在我看来,在使用Visual Studio构建时,CMake将始终发出/ IMPLIB,并且无法修改传递的参数.有没有办法控制这种行为?

sak*_*kra 3

我认为不可能阻止 CMake/IMPLIB向链接器发出选项。但是,您可以通过设置共享库目标的以下属性来控制生成的导入库的名称:

add_library(foo SHARED foo.cpp)
# set base name of generated DLL import library
set_target_properties(foo PROPERTIES ARCHIVE_OUTPUT_NAME "bar")
# set prefix of generated DLL import library
set_target_properties(foo PROPERTIES IMPORT_PREFIX "")
# set suffix of generated DLL import library
set_target_properties(foo PROPERTIES IMPORT_SUFFIX ".lib")
Run Code Online (Sandbox Code Playgroud)

可以通过设置以下目标属性来调整生成的共享库的名称:

# set base name of generated DLL shared library
set_target_properties(foo PROPERTIES RUNTIME_OUTPUT_NAME "bar")
# set prefix of generated DLL shared library
set_target_properties(foo PROPERTIES PREFIX "")
# set suffix of generated DLL shared library
set_target_properties(foo PROPERTIES SUFFIX ".dll")
Run Code Online (Sandbox Code Playgroud)