为调试和发布配置设置cmake目标名称

Ano*_*ous 6 debugging configuration release cmake

我试图区分调试和发布版本.

如果调试构建过程中我想安装MYLIB d在/ usr/local/lib目录.如果正在发布版本,我想在/ 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)
Run Code Online (Sandbox Code Playgroud)

但是,目标名称在两种情况下(CMAKE_BUILD_TYPE = Debug或Release)始终是myLib d.这里有什么问题?

小智 8

设置CMAKE_DEBUG_POSTFIX变量:

if(NOT CMAKE_DEBUG_POSTFIX)
  set(CMAKE_DEBUG_POSTFIX d)
endif()
Run Code Online (Sandbox Code Playgroud)

细节

这里有什么问题?

  • 你需要使用if(CMAKE_BUILD_TYPE MATCHES Release)而不是if(CMAKE_BUILD_TYPE MATCHES RELEASE)
  • 可能你需要清理构建目录
  • 请注意,该if(CMAKE_BUILD_TYPE...)方法不适用于多配置生成器


归档时间:

查看次数:

7501 次

最近记录:

10 年,8 月 前