Qt, CMake и консольное окно
Установил Qt 5.15.1. Создал простейший проект, состоящий из следующих трёх файлов:
main.cpp
#include <QApplication>
#include <QPushButton>
int main(int argc, char **argv)
{
QApplication app (argc, argv);
QPushButton button ("Hello world !");
button.show();
return app.exec();
}
test.pro
QT += core gui widgets
CONFIG += c++11
SOURCES += main.cpp
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(test)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
При сборке через qmake
qmake CONFIG+=debug && mingw32-make
всё нормально. Но при сборке через cmake
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . && cmake --build .
при запуске программы появляется чёрное окошко консоли:

Подскажите, пожалуйста, откуда это окошко берётся и как избежать его появления.
Ответы (2 шт):
Тебе надо добавить флаг при запуске команды -DCMAKE_CXX_FLAGS="-mwindows"
То есть в итоге: cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . && cmake --build . -DCMAKE_CXX_FLAGS="-mwindows"
Если посмотреть документацию на add_executable, то станет очевидно, что add_executable(${PROJECT_NAME} main.cpp) создаёт консольное приложение. Чтобы создать приложение Windows с оконным интерфейсом, нужно эту строчку немного изменить:
add_executable(${PROJECT_NAME} WIN32 main.cpp)