MSYS2

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$

正文完
 0
评论(没有评论)