黒い画面の非表示 GCCオプション設定


Windows10 + GCCでコンパイルした、QtGTKなどの画面を実行すると、黒い画面(コンソール画面)が表示される。邪魔だ!!

CMakeの場合

GCCオプションで、"-mwindows"を付けると、この黒い画面が表示されなくなる。
FLAGでも、この方法だと、うまく動かないケースがある。

GCCのリンカーのオプションで、-Wl,--subsystem,consoleがあると、このconsoleが優先されるようだ。
このsubsystemは、consolewindowsの選択肢があるので、後者を指定する

追加: add_executable()で、"WIN32"と指定するだけでも行ける!

CMakeList.txt
set(CMAKE_CXX_FLAGS "-mwindows")
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,--subsystem,windows")

add_executable(プロジェクト名 WIN32 ${PROJECT_SOURCES})

Rust(rustc)の場合

ソースコードの先頭にマクロを指定する。

main.rs
#![windows_subsystem = "windows"]

Meson Build systemの場合

gui_app : Trueとすると、ninja"-mwindows"を設定してくれる。

meson.build
project('projectName', 'cpp')
executable('program', 'main.cpp', gui_app : True)