链接debugging和发布不同的库在Windows上的Cmake生成?

所以我有一个库正在编译,我需要链接不同的第三方的东西,取决于是否debugging或发布版本(特别是这些库的版本或debugging版本)。 在Cmake中有这样一个简单的方法吗?

编辑:我应该注意到我正在使用visual studio

根据CMake文档 :

target_link_libraries(<target> [lib1 [lib2 [...]]] [[debug|optimized|general] <lib>] ...) 

“debugging”,“优化”或“通用”关键字指示紧随其后的库仅用于相应的生成configuration。

所以你应该可以做到这一点:

 add_executable( MyEXE ${SOURCES}) target_link_libraries( MyEXE debug 3PDebugLib) target_link_libraries( MyEXE optimized 3PReleaseLib) 

不知何故从@Mike Willekes的答案得到CMake链接在同一个目标发布和debugging我:(

我只是通过在一行中设置两个configuration来完成这个工作,就像@sakra 在一个相关的问题中所build议的那样 – 为每个需要链接的库都这样做:

 target_link_libraries ( app debug ${Boost_FILESYSTEM_LIBRARY_DEBUG} optimized ${Boost_FILESYSTEM_LIBRARY_RELEASE} ) target_link_libraries ( app debug ${Boost_LOG_LIBRARY_DEBUG} optimized ${Boost_LOG_LIBRARY_RELEASE} ) target_link_libraries ( app debug ${Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG} optimized ${Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE} ) # ...