如何在发布模式下将可执行文件设置为 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,所以这取决于我是否正确阅读了这些链接;)
我在 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,所以这取决于我是否正确阅读了这些链接;)