MSYS2仅支持windows 64位
安装、更新系统
安装:https://www.msys2.org/ , 默认目录 C:\msys64, 默认环境: UCRT64, 具体参考: https://www.msys2.org/docs/environments/
UCRT64环境:
- Toolchain:gcc
- C Library:ucrt
- C++ Library:libstdc++
更新环境:
pacman -Syu
更新后关闭终端,再次打开执行:
pacman -Su
- MSYS2使用Arch Linux的包管理器pacman进行包管理。但MSYS2不是一个虚拟机,它只是用了Linux的包管理器。MSYS2是用来编译,使用native Windows程序的。
- pacman -Syu分两部分看。-Sy是更新软件库,u是升级所以已经安装的包
- pacman -S 是安装
安装C++工具链
安装完整的 C++ 工具链:
pacman -S mingw-w64-ucrt-x86_64-toolchain
:: There are 13 members in group mingw-w64-ucrt-x86_64-toolchain:
:: Repository ucrt64
1) mingw-w64-ucrt-x86_64-binutils 2) mingw-w64-ucrt-x86_64-crt 3) mingw-w64-ucrt-x86_64-gcc
4) mingw-w64-ucrt-x86_64-gdb 5) mingw-w64-ucrt-x86_64-gdb-multiarch
6) mingw-w64-ucrt-x86_64-headers 7) mingw-w64-ucrt-x86_64-libmangle
8) mingw-w64-ucrt-x86_64-libwinpthread 9) mingw-w64-ucrt-x86_64-make
10) mingw-w64-ucrt-x86_64-pkgconf 11) mingw-w64-ucrt-x86_64-tools
12) mingw-w64-ucrt-x86_64-winpthreads 13) mingw-w64-ucrt-x86_64-winstorecompat
安装cmake 和 ninja:
pacman -S mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-ninja
检查版本:
gcc --version
g++ --version
cmake --version
ninja --version
gcc.exe (Rev5, Built by MSYS2 project) 16.1.0
Copyright (C) 2026 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
g++.exe (Rev5, Built by MSYS2 project) 16.1.0
Copyright (C) 2026 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
cmake version 4.3.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).
1.13.2
clion 设置
Settings → Build, Execution, Deployment → Toolchains
- 工具集:C:\msys64\ucrt64
- cmake:C:\msys64\ucrt64\bin\cmake.exe
- 构建工具:C:\msys64\ucrt64\bin\ninja.exe
- c编译器:C:\msys64\ucrt64\bin\cc.exe
- c++编译器:C:\msys64\ucrt64\bin\c++.exe
- 调试器: C:\msys64\ucrt64\bin\gdb.exe , 会提示版本过高
在CLion中生成单一独立可执行文件(不依赖外部动态库)需要结合编译器/链接器配置和打包工具,cmake配置文件通用版本:
# 静态链接配置
if(MSVC)
# MSVC静态链接
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT")
elseif(CMAKE_COMPILER_IS_GNUCXX)
# GCC静态链接
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# Clang静态链接(需安装静态库)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
endif()
中文乱码:源码使用 GB18030
qt6
1、安装 Qt6 和相关开发组件
pacman -S mingw-w64-ucrt-x86_64-qt6 mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-qt6-tools
:: There are 39 members in group mingw-w64-ucrt-x86_64-qt6:
:: Repository ucrt64
1) mingw-w64-ucrt-x86_64-qt6-3d 2) mingw-w64-ucrt-x86_64-qt6-5compat
3) mingw-w64-ucrt-x86_64-qt6-activeqt 4) mingw-w64-ucrt-x86_64-qt6-base
5) mingw-w64-ucrt-x86_64-qt6-charts 6) mingw-w64-ucrt-x86_64-qt6-connectivity
7) mingw-w64-ucrt-x86_64-qt6-datavis3d 8) mingw-w64-ucrt-x86_64-qt6-declarative
9) mingw-w64-ucrt-x86_64-qt6-doc 10) mingw-w64-ucrt-x86_64-qt6-graphs
11) mingw-w64-ucrt-x86_64-qt6-grpc 12) mingw-w64-ucrt-x86_64-qt6-httpserver
13) mingw-w64-ucrt-x86_64-qt6-imageformats 14) mingw-w64-ucrt-x86_64-qt6-languageserver
15) mingw-w64-ucrt-x86_64-qt6-location 16) mingw-w64-ucrt-x86_64-qt6-lottie
17) mingw-w64-ucrt-x86_64-qt6-mqtt 18) mingw-w64-ucrt-x86_64-qt6-multimedia
19) mingw-w64-ucrt-x86_64-qt6-networkauth 20) mingw-w64-ucrt-x86_64-qt6-pdf
21) mingw-w64-ucrt-x86_64-qt6-positioning 22) mingw-w64-ucrt-x86_64-qt6-quick3d
23) mingw-w64-ucrt-x86_64-qt6-quick3dphysics 24) mingw-w64-ucrt-x86_64-qt6-quickeffectmaker
25) mingw-w64-ucrt-x86_64-qt6-quicktimeline 26) mingw-w64-ucrt-x86_64-qt6-remoteobjects
27) mingw-w64-ucrt-x86_64-qt6-scxml 28) mingw-w64-ucrt-x86_64-qt6-sensors
29) mingw-w64-ucrt-x86_64-qt6-serialbus 30) mingw-w64-ucrt-x86_64-qt6-serialport
31) mingw-w64-ucrt-x86_64-qt6-shadertools 32) mingw-w64-ucrt-x86_64-qt6-speech
33) mingw-w64-ucrt-x86_64-qt6-svg 34) mingw-w64-ucrt-x86_64-qt6-tools
35) mingw-w64-ucrt-x86_64-qt6-translations 36) mingw-w64-ucrt-x86_64-qt6-virtualkeyboard
37) mingw-w64-ucrt-x86_64-qt6-webchannel 38) mingw-w64-ucrt-x86_64-qt6-websockets
39) mingw-w64-ucrt-x86_64-qt6-webview
将 C:\msys64\ucrt64\bin 加入系统path
2、 qt.qpa.plugin: Could not find the Qt platform plugin "windows" in "" 报错的解决方式:
设置环境变量 QT_QPA_PLATFORM_PLUGIN_PATH , 值为:C:\msys64\ucrt64\share\qt6\plugins\platforms
3、新建项目
新建Qt 微件可执行项目,Qt CMake前缀: C:\msys64\ucrt64\bin, 对应cmake文件钟的下面语句
set(CMAKE_PREFIX_PATH "C:/msys64/ucrt64/bin")
4、外部工具:
设置,工具,外部工具
- 名称:UI_Designer
- 程序
C:\msys64\ucrt64\bin\designer.exe - 实参:
$FileName$ - 工作目录:
FileDir
项目,新建,Qt UI 类,就可以在项目中的ui上右键,ExternalTool,UI_Designer来打开图形界面。
设置,工具,外部工具
- 名称:UIC,用户界面编译器
- 程序:C:\msys64\ucrt64\share\qt6\bin\uic.exe
- 实参:
$FileName$ -o ui_$FileNameWithoutExtension$.h - 工作目录:
$FileDir$