CMAKE 使用 MinGW 构建 gui 应用程序

CMAKE build gui application with MinGW

我想用 SDL2 构建 gui 应用程序。我 link SDL2 库(libSDL2.dll.alibSDL2main.a),但我不知道如何将 -mwindows 标志应用到我的应用程序。没有他 .exe 我的应用程序文件不会显示 window (执行没有任何效果)。我使用 MinGW-w64,我的 OS 是 Windows 10。在命令行中,我可以像 here 那样执行此操作(参见 B 部分)。如何使用 cmake 应用此标志?控制台应用程序工作正常。

我尝试下一个变体,但它不起作用。

cmake -G "MinGW Makefiles" -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_EXE_LINKER_FLAGS="-mwindows"
cmake -G "MinGW Makefiles" -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ -D CMAKE_CXX_FLAGS="-mwindows"

也在 CMakeLists.txt 我尝试这样做

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows")

您可以将 WIN32 参数传递给 add_executable,CMake 会为您执行此操作:

add_executable(target_name WIN32 ${sources})

我基本上是复制粘贴了 CLion 在命令行中执行的内容,并且有效:

$ cmake DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" ../

$ cmake --build ./ --target target_name -j 6
[ 50%] Building CXX object CMakeFiles/target_name.dir/main.cpp.obj
[100%] Linking CXX executable target_name.exe
[100%] Built target tree_traverse

此后可执行文件 target_name.exe 出现在目录中。