【笔记】MSYS2 的 MINGW64 环境 全面工具链

#工作记录

MSYS2 的 MINGW64 环境(mingw64.exe,下面是为该环境准备的最全工具链安装命令(包括 C/C++、Python、pip/wheel、GTK3/GTK4、PyGObject、Cairo、SDL2 等)。

这一环境适用于构建原生 64 位 Windows 应用程序。


🛠 一、更新 MSYS2 和软件包

请在 MSYS2 Shell 中执行一次更新(只需首次):

pacman -Syu     # 首次运行后关闭终端

然后在 MINGW64 环境中继续执行:

pacman -Su      # 第二步更新

🧰 二、切换到 MINGW64 环境(路径举例)

请运行:

C:\msys64\mingw64.exe

所有以下命令请在 mingw64.exe 终端中执行!


🧩 三、完整开发工具链安装(MINGW64)

✅ 基本开发环境

pacman -S --needed \mingw-w64-x86_64-toolchain \mingw-w64-x86_64-cmake \mingw-w64-x86_64-ninja \git wget unzip zip tar make

🐍 四、Python + pip + wheel + 科学库

✅ 安装 Python 和 pip

pacman -S mingw-w64-x86_64-python mingw-w64-x86_64-python-pip

✅ 安装 setuptools、wheel、virtualenv

pip install --upgrade pip setuptools wheel virtualenv

✅ 安装科学计算类库(C 扩展自动链接 mingw 库)

pip install numpy scipy matplotlib pandas

🖼️ 五、GTK3 / GTK4 + PyGObject 图形界面支持

✅ 安装 GTK3(推荐兼容性较好)

pacman -S mingw-w64-x86_64-gtk3

或安装 GTK4:

pacman -S mingw-w64-x86_64-gtk4

同时会自动安装 glib2, gdk-pixbuf2, pango, cairo 等依赖。


✅ 安装 Python 图形绑定库 PyGObject

pacman -S mingw-w64-x86_64-python-gobject

✅ 安装 PyCairo(绘图库)

pacman -S mingw-w64-x86_64-python-cairo

替代安装方式(不推荐但可用):

pip install PyGObject pycairo

🕹️ 六、额外 GUI 与多媒体支持库

✅ SDL2(游戏、媒体开发)

pacman -S mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image

✅ wxWidgets(C++ GUI 库)

pacman -S mingw-w64-x86_64-wxWidgets

✅ Qt6(大型 C++ GUI 框架)

pacman -S mingw-w64-x86_64-qt6

🔬 七、验证安装成功

# 检查 gcc/g++ 等工具链
gcc --version
g++ --version# Python 与 pip
python --version
pip --version# PyGObject 示例测试
python -c "import gi; gi.require_version('Gtk', '3.0'); from gi.repository import Gtk; print(Gtk)"

🧠 八、建议设置 PATH(可选)

将 MSYS2 的 MINGW64 路径加入系统 PATH 环境变量(方便外部调用):

C:\msys64\mingw64\bin

如有特定开发目标(如 PyInstaller 打包 GTK 应用、制作 GUI 安装包等),可能还需要后续集成方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 HTTP 的单向流式通信协议SSE详解

SSE(Server-Sent Events)详解 🧠 什么是 SSE? SSE(Server-Sent Events) 是 HTML5 标准中定义的一种通信机制,它允许服务器主动将事件推送给客户端(浏览器)。与传统的 H…

【react+antd+vite】优雅的引入svg和阿里巴巴图标

1.安装相关包 由于是vite项目,要安装插件来帮助svg文件引入进来,否则会失败 npm下载包 npm i vite-plugin-svgr vite.config.ts文件内: import svgr from "vite-plugin-svgr"; //... export default defineConfig({plugins: …

UI框架-通知组件

UI框架-通知组件 介绍 一个基于 Vue 3 的轻量级通知组件库,提供了丰富的消息通知功能。支持多种通知类型、自定义样式、进度条显示等特性。 特性 🎨 支持多种通知类型:信息、成功、警告、错误⏳ 支持进度条显示🔄 支持加载中状…

WordZero:让Markdown与Word文档自由转换的Golang利器

在日常工作中,我们经常需要在Markdown和Word文档之间进行转换。Markdown方便编写和版本控制,而Word文档更适合正式的商务环境。作为一名Golang开发者,我开发了WordZero这个库,专门解决这个痛点。 项目背景 GitHub仓库&#xff1…

计算机网络面试汇总(完整版)

基础 1.说下计算机网络体系结构 计算机网络体系结构,一般有三种:OSI 七层模型、TCP/IP 四层模型、五层结构。 简单说,OSI是一个理论上的网络通信模型,TCP/IP是实际上的网络通信模型,五层结构就是为了介绍网络原理而折…

动端React表格组件:支持合并

前言 在移动端开发中,表格组件是一个常见但复杂的需求。相比PC端,移动端表格面临着屏幕空间有限、交互方式不同、性能要求更高等挑战。本文将详细介绍如何从零开始构建一个功能完整的移动端React表格组件,包含固定列、智能单元格合并、排序等…

广告系统中后链路数据为什么要使用流批一体技术?流批一体技术是什么?

在大规模广告系统的后链路(离线和实时特征计算、模型训练与上线、效果监控等)中,往往既有对海量历史数据的批量计算需求(离线特征、离线模型训练、报表汇总),又有对在线请求的低延迟实时计算需求(实时特征、在线打分、实时监控/告警)。传统将二者割裂、用 Lambda 架构…

6.10 - 常用 SQL 语句以及知识点

MySQL 技术 SQL 是结构化查询语言,他是关系型数据库的通用语言 SQL 可以分为分为以下三个类别 DDL (data definition languages) 语句 数据定义语言,定义了 不同的数据库、表、索引等数据库对象的定义。常用的的语句关键字包括 **create、drop、alter …

OpenCV CUDA 模块光流计算------稀疏光流算法类SparsePyrLKOpticalFlow

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 OpenCV CUDA 模块中实现的稀疏光流算法类,基于 Lucas-Kanade 方法,并支持图像金字塔结构。适用于特征点跟踪任务&#xf…

免费工具-微软Bing Video Creator

目录 引言 一、揭秘Bing Video Creator 二、轻松上手:三步玩转Bing Video Creator 2.1 获取与访问: 2.2 创作流程: 2.3 提示词撰写技巧——释放AI的想象力: 三、核心特性详解:灵活满足多样化需求 3.1 双重使用模…

MySQL技术内幕1:内容介绍+MySQL编译使用介绍

文章目录 1.整体内容介绍2.下载编译流程2.1 安装编译工具和依赖库2.2 下载编译 3.配置MySQL3.1 数据库初始化3.2 编辑配置文件3.3 启动停止MySQL3.4 登录并修改密码 1.整体内容介绍 MySQL技术系列文章将从MySQL下载编译,使用到MySQL各组件使用原理源码分析&#xf…

MySQL 事务详解

MySQL 事务详解 一、事务是什么?为什么需要事务? 二、事务的四大特性(ACID)举例说明:转账操作 三、MySQL 中事务的支持四、事务分类:隐式 vs 显式1. 隐式事务(自动提交)2. 显式事务&…

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…

利用coze工作流制作一个自动生成PPT的智能体

在Coze平台中,通过工作流实现PPT自动化生成是一个高效且灵活的解决方案,尤其适合需要快速产出标准化演示文稿的场景。以下是基于Coze工作流制作PPT的核心逻辑与操作建议: 理论流程 一、核心流程设计 需求输入与解析 用户输入:主…

vue3 按钮级别权限控制

在Vue 3中实现按钮级别的权限控制,可以通过多种方式实现。这里我将介绍几种常见的方法: 方法1:使用Vue 3的Composition API 在Vue 3中,你可以使用Composition API来创建一个可复用的逻辑来处理权限控制。 创建权限控制逻辑 首…

spa首屏加载慢怎样解决

SPA(Single Page Application,单页应用)首屏加载慢是一个常见问题,主要原因通常是首次加载需要拉取体积较大的 JavaScript 文件、样式表、初始化数据等。以下是一些常见的 优化策略,可以帮助你 提升首屏加载速度&#…

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…

NTT印地赛车:数字孪生技术重构赛事体验范式,驱动观众参与度革命

引言&#xff1a;数字孪生技术赋能体育赛事&#xff0c;开启沉浸式观赛新纪元 在传统体育赛事观赛模式遭遇体验天花板之际&#xff0c;NTT与印地赛车系列赛&#xff08;NTT INDYCAR SERIES&#xff09;的深度合作&#xff0c;通过数字孪生&#xff08;Digital Twin&#xff09…

解构与重构:PLM 系统如何从管理工具进化为创新操作系统?

在智能汽车、工业物联网等新兴领域的冲击下&#xff0c;传统产品生命周期管理&#xff08;PLM&#xff09;系统正在经历前所未有的范式转换。当某头部车企因 ECU 软件与硬件模具版本失配导致 10 万辆智能电车召回&#xff0c;损失高达 6 亿美元时&#xff0c;这场危机不仅暴露了…