Bar*_*art 10
您的 CMakeLists.txt 中很可能会有如下一行:
ADD_EXECUTABLE(exename ....)
Run Code Online (Sandbox Code Playgroud)
当然,这些点是进一步的论点。将此更改为:
ADD_EXECUTABLE(exename [WIN32] ...)
Run Code Online (Sandbox Code Playgroud)
指定它是 Win32 应用程序而不是控制台应用程序。
或者,可以在 CMAKE 网站上找到“如果WIN32给出该属性,WIN32_EXECUTABLE将在创建的目标上设置。” 当设置 WIN32_EXECUTABLE 时,它将“在 Windows 上使用 WinMain 入口点构建可执行文件”。
max*_*zig 10
默认情况下,与 qmake 相比,cmake 在 windows 下构建启用控制台窗口的 Qt 应用程序(windows 二进制文件可以使用不同的入口点 - 控制台窗口就是其中之一)。
您可以通过WIN32_EXECUTABLE在可执行文件上设置cmake 属性来禁用出现的控制台窗口。
这可以通过设置一个add_executable选项来实现,即
add_executable(myexe WIN32 ...)
Run Code Online (Sandbox Code Playgroud)
或通过显式设置属性:
set_property(TARGET main PROPERTY WIN32_EXECUTABLE true)
Run Code Online (Sandbox Code Playgroud)
set_property()当控制台窗口应有条件地禁用时,使用会很有帮助,例如:
if(CMAKE_BUILD_TYPE STREQUAL "Release")
set_property(TARGET main PROPERTY WIN32_EXECUTABLE true)
endif()
Run Code Online (Sandbox Code Playgroud)
在WIN32_EXECUTABLEWindows 以外的平台上编译时,该属性无效(参见CMAKE_WIN32_EXECUTABLE)。
与WIN32cmake 变量一样,该WIN32_EXECUTABLE属性还在编译 win64 可执行文件时配置控制台窗口。