如何在发布模式下将可执行文件设置为 Win32

How to set executable to Win32 in release mode

我在 CMake 的文档中读到,当调用 add_executable 时,您可以通过执行 add_executable(target WIN32 source.cpp) 将可执行文件类型设置为 Win32。我也知道您应该使用 CMake 生成器表达式来检查构建配置,如下所示:

target_compile_definitions(target PUBLIC
  $<$<CONFIG:Debug>:DEBUG>
  $<$<CONFIG:Release>:RELEASE>
)

然而,这不适用于 add_executable。当我执行 add_executable(target $<$<CONFIG:Release>:WIN32> source.cpp) 时,它将其视为源文件,因此它失败了。仅在发布模式下将可执行文件类型设置为 WIN32 的正确方法是什么?

鉴于 WIN32 可执行文件和非 WIN32 可执行文件没有相同的入口点,我不确定它是否有意义,因此代码也需要更改。

不过,这是您在 CMake 方面的做法:

add_executable(target source.cpp)
set_target_properties(target PROPERTIES WIN32_EXECUTABLE $<CONFIG:Release>)

关键点是 add_executable is just a shortcut to set the WIN32_EXECUTABLE 属性 中的 WIN32 标志。

注意:我无法测试这个示例 atm,所以这取决于我是否正确阅读了这些链接;)