如何使用可执行文件的不同目标名称构建 CMake 调试版本?
How to build CMake Debug version using different target name for executables?
我正在使用 cmake -DCMAKE_BUILD_TYPE=Debug .
.
构建
我正在使用 set(CMAKE_DEBUG_POSTFIX d)
在文件名末尾添加 d
。
这适用于静态库,我希望它也适用于可执行文件。但是,至少在我的例子中,它正在使用 *d.a
和不带 d
后缀的可执行文件编译所有静态库。
我是不是漏掉了什么?
你没有遗漏任何东西。正如文档所说(强调我的):
When a non-executable target is created its <CONFIG>_POSTFIX
target property is initialized with the value of this variable if it is set.
参见:https://cmake.org/cmake/help/latest/variable/CMAKE_CONFIG_POSTFIX.html
尽管听起来,您可以使用 set_target_properties
:
在可执行目标上手动设置 属性
set_target_properties(
target1 ... targetN
PROPERTIES
DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}"
)
但是请注意,默认情况下它不适用于可执行文件,因为这很少是您想要的。对于库,同时打包和部署调试和发布配置是相当普遍的。在 Windows 上,对于开发来说,这是一个要求。另一方面,很少需要部署调试应用程序,因此很少需要应用后缀。
我正在使用 cmake -DCMAKE_BUILD_TYPE=Debug .
.
我正在使用 set(CMAKE_DEBUG_POSTFIX d)
在文件名末尾添加 d
。
这适用于静态库,我希望它也适用于可执行文件。但是,至少在我的例子中,它正在使用 *d.a
和不带 d
后缀的可执行文件编译所有静态库。
我是不是漏掉了什么?
你没有遗漏任何东西。正如文档所说(强调我的):
When a non-executable target is created its
<CONFIG>_POSTFIX
target property is initialized with the value of this variable if it is set.
参见:https://cmake.org/cmake/help/latest/variable/CMAKE_CONFIG_POSTFIX.html
尽管听起来,您可以使用 set_target_properties
:
set_target_properties(
target1 ... targetN
PROPERTIES
DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}"
)
但是请注意,默认情况下它不适用于可执行文件,因为这很少是您想要的。对于库,同时打包和部署调试和发布配置是相当普遍的。在 Windows 上,对于开发来说,这是一个要求。另一方面,很少需要部署调试应用程序,因此很少需要应用后缀。