我试图区分调试和发布版本。
如果正在进行调试构建,我想在/ usr / local / lib中安装myLib d 。 如果正在进行发布构建,我想在/ usr / local / lib中安装myLib。
这是我的方法
IF(CMAKE_BUILD_TYPE MATCHES RELEASE)
SET(LIB_NAME myLib)
ELSE()
SET(LIB_NAME myLibd)
ENDIF(CMAKE_BUILD_TYPE MATCHES RELEASE)
ADD_LIBRARY(${LIB_NAME} ${Source_files} ${Header_files})
INSTALL(TARGETS ${LIB_NAME} DESTINATION /usr/local/lib)
但是,目标名称在两种情况下(CMAKE_BUILD_TYPE =调试或发布)总是myLib d 。这有什么问题?
答案 0 :(得分:7)
设置CMAKE_DEBUG_POSTFIX变量:
if(NOT CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX d)
endif()
这里有什么问题?
if(CMAKE_BUILD_TYPE MATCHES Release)
代替if(CMAKE_BUILD_TYPE MATCHES RELEASE)
if(CMAKE_BUILD_TYPE...)
方法不适用于multi-configuration生成器答案 1 :(得分:1)
set_property(TARGET ${LIB_NAME} PROPERTY DBG_POSTFIX d)
<强>参考强>