博客參考:https://www.cnblogs.com/tangxin-blog/p/8283460.html
可執行文件的輸出目錄
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
上面的語句能設置
在Win + VS環境下,會自動在你所設置的目錄后面擴展一層 <CONFIG> 目錄,所以最終生成的Debug版本程序會在 ${PROJECT_SOURCE_DIR}/../bin/Debug 目錄下,Release版本程序會在 ${PROJECT_SOURCE_DIR}/../bin/Release 目錄下.
在Linux + GCC環境下,無論是Debug還是Release,生成的可執行程序會直接放在你所設置的目錄下,不會有差異.
庫文件的輸出目錄
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../lib)
分別設置Debug版本和Release版本可執行文件的輸出目錄
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/../bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/../bin)
分別設置Debug版本和Release版本庫文件的輸出目錄
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/../lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/../lib)
分別設置Debug版本和Release版本下庫文件的后綴名
set(CMAKE_DEBUG_POSTFIX "_d") set(CMAKE_RELEASE_POSTFIX "_r")
分別設置Debug版本和Release版本下可執行文件的后綴名
set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d") set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r")
分別設置Debug版本和Release版本下CXX的編譯選項
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") #Denug SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") #Release