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模式下不添加即可區分。