Debugging 为调试和发布配置设置cmake目标名称
我试图区分调试版本和发布版本 如果正在进行调试构建,我想在/usr/local/lib中安装myLibd。 如果发行版正在进行构建,我想在/usr/local/lib中安装myLib 这是我的方法Debugging 为调试和发布配置设置cmake目标名称,debugging,configuration,cmake,release,Debugging,Configuration,Cmake,Release,我试图区分调试版本和发布版本 如果正在进行调试构建,我想在/usr/local/lib中安装myLibd。 如果发行版正在进行构建,我想在/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(${L
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=Debug或Release),目标名称始终是myLibd。这里有什么问题
set_property(TARGET ${LIB_NAME} PROPERTY DBG_POSTFIX d)
参考
if(NOT CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX d)
endif()
细节
这里有什么问题
set_property(TARGET ${LIB_NAME} PROPERTY DBG_POSTFIX d)
- 您需要使用
而不是if(CMAKE\u BUILD\u TYPE MATCHES Release)
if(CMAKE\u BUILD\u TYPE MATCHES Release)
- 可能您需要清理构建目录
- 请注意,
if(CMAKE\u BUILD\u TYPE…)