CMAKE设置VS工程中Debug和Release不同的输出名称

Posted xuhui24

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMAKE设置VS工程中Debug和Release不同的输出名称相关的知识,希望对你有一定的参考价值。

CMAKE在管理工程时,需要同时编译Debug和Release版本,但是两个版本输出的文件无论是lib还是dll,名称都是是完全相同。

如果要输出在同一个目录中是非常麻烦的,非常容易混淆,可以使用以下命令设置debug和Release输出文件后缀的方式进行区分:

if(WIN32 AND NOT MINGW)
  if(NOT DEFINED CMAKE_DEBUG_POSTFIX)
    set(CMAKE_DEBUG_POSTFIX "_debug")
  endif()
  if(NOT DEFINED CMAKE_RELEASE_POSTFIX)
    set(CMAKE_RELEASE_POSTFIX "_release")
  endif()
  if(NOT DEFINED CMAKE_RELWITHDEBINFO_POSTFIX)
    set(CMAKE_RELWITHDEBINFO_POSTFIX "_release")
  endif()
  if(NOT DEFINED CMAKE_MINSIZEREL_POSTFIX)
    set(CMAKE_MINSIZEREL_POSTFIX "_release")
  endif()
endif()

上面命令分别设置Debug模式下后缀为“_debug”,在Release模式下后缀为“_release”。

可以在根目录下的的CMakeLists.txt文件中设置该命令,则整个项目中子工程的dll和lib都会添加相应的后缀。

要注意该命令要放在目标生成之前,放在后面是无效的。

个人建议只在Debug模式下添加后缀“D”,Release模式下不添加即可区分。

以上是关于CMAKE设置VS工程中Debug和Release不同的输出名称的主要内容,如果未能解决你的问题,请参考以下文章

vs2010中release模式下调试程序

如何使用Cmake生成debug版本和release版本的程序

用CMake设置Visual Studio工程中第三方库

gccrelease模式设置断点

CMake基础教程cmake生成debug和release两个版本程序(如何编译-g版本)

vs2015 工程中 Web.Release.config和Web.Debug.config文件无效的处理办法