How do I keep my Qt C++ program from opening a console in Windows?

后端 未结 5 1982
有刺的猬
有刺的猬 2021-02-19 10:10

I\'m making an application in Qt Creator, with cmake and MinGW as compiler. I\'ve seen this question being answered for other people, but they used regular Qt projects with .pro

5条回答
  •  无人及你
    2021-02-19 11:05

    By default, and in contrast to qmake, cmake builds Qt apps with enabled console window under windows (windows binaries can use different entry points - the console window is one of them).

    You can disable the console window appearing via setting the WIN32_EXECUTABLE cmake property on the executable.

    This can be achieved either via setting an add_executable option, i.e.

    add_executable(myexe WIN32 ...)
    

    or via setting the property explicitly:

    set_property(TARGET main PROPERTY WIN32_EXECUTABLE true)
    

    Using set_property() is helpful when the console window should conditionally be disabled, e.g.:

    if(CMAKE_BUILD_TYPE STREQUAL "Release")
      set_property(TARGET main PROPERTY WIN32_EXECUTABLE true)
    endif()
    

    The WIN32_EXECUTABLE property has no effect when compiling on platforms other than windows (cf. CMAKE_WIN32_EXECUTABLE).

    As with the WIN32 cmake variable, the WIN32_EXECUTABLE property also configures the console window when compiling a win64 executable.

提交回复
热议问题