**简 述: ** CMake
设置 Target
输出目录和后缀名
set(EXECUTABLE_OUTPUT_PATH "xxx/path") # 可执行文件的输出目录
set(LIBRARY_OUTPUT_PATH "xxx/path") # 库文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "xxx/path") # debug 可执行文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "xxx/path") # release 可执行文件的输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "xxx/path") # debug 库文件的输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "xxx/path") # release 库文件的输出目录
set(CMAKE_DEBUG_POSTFIX "xxx/path") # debug 库文件的后缀名
set(CMAKE_RELEASE_POSTFIX "xxx/path") # release 库文件的后缀名
set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d") # debug 可执行文件的后缀名
set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r") # release 可执行文件的后缀名
[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
正文
一. 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)
上面的语句能设置库文件的输出目录
在 Win + VS 环境下,会自动在你所设置的目录后面扩展一层 <CONFIG>
目录,所以最终生成的 Debug 版本库会在 ${PROJECT_SOURCE_DIR}/../lib/Debug
目录下,Release 版本库会在 ${PROJECT_SOURCE_DIR}/../lib/Release
目录下。
在 Linux + GCC 环境下,无论是 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 版本下可执行文件的后缀名。
系列地址
欢迎 star
⭐ 和 fork
🍴这个系列的 CMake
学习,附学习由浅入深的目录。