Win10下的mingw-w64推荐使用winlibs发行版

本文介绍了在Windows10环境下,推荐使用winlibs发行版的mingw-w64编译器,它支持LLVM和CLANG,以及推荐配合使用的紧跟潮流的CodeBlocksNightly编辑器。

1.  Win10下的mingw-w64推荐使用winlibs发行版,这个发行版甚至还可以使用 LLVM和CLANG

编译器。而且版本很新颖,一点也不落后。就不用自己费劲搞 Clang啦。

2.  搭配winlibs的编辑器,推荐使用  CodeBlocks 的   Nightly  版本,也是紧跟着潮流的,一点也不落后。推荐和所用的版本是最新版的。

非常好!你想使用 **MinGW-w64 的 64位 预编译版本**,并且希望是 **解压即用、无需安装** 的便携版(Portable),用于配合 Python 编译 C++ 扩展(如 pybind11)。 --- ## ✅ 推荐:最稳定、解压即用的 MinGW-w64 预编译包 ### 🏆 推荐项目:**WinLibs MinGW-w64** > 🔗 官网地址:[https://www.winlibs.com/](https://www.winlibs.com/) 这是一个非常流行的、独立打包的 MinGW-w64 发行版,特点如下: | 特点 | 说明 | |------|------| | ✅ 纯绿色、免安装 | 下载 `.7z` 包解压即可使用 | | ✅ 支持 x86_64(64位)和 i686(32位) | 可选 64位 构建 | | ✅ 内置 GCC + G++ + Fortran | 支持 C/C++17 标准 | | ✅ 不依赖 MSVCRT | 使用现代 UCRT 运行时(更兼容新 Windows) | | ✅ 持续更新 | 跟踪最新 GCC 和 MinGW-w64 版本 | --- ## 🔽 下载步骤(以 64位 UCRT 版本为例) 1. 打开官网: ``` https://www.winlibs.com/ ``` 2. 找到最新版本下载链接,例如: ``` winlibs-x86_64-posix-seh-ucrt-rX-X-X-mingw-w64X.X.X.7z ``` 👉 当前推荐格式(截至 2025 年初): ``` winlibs-x86_64-posix-seh-ucrt-r14-14.2.0-11.0.1-mingw-w6411.0.1.7z ``` - `x86_64` → 64位架构 - `posix` → 使用 POSIX 线程模型(支持 `std::thread`) - `seh` → 异常处理机制(比 sjlj 更高效) - `ucrt` → 使用微软通用 CRT(Universal CRT),与现代 Python 兼容性更好 3. 下载地址(直接点击或复制): ``` https://github.com/brechtsanders/winlibs_mingw/releases/download/14.2.0-11.0.1-11.0.1/winlibs-x86_64-posix-seh-ucrt-r14-14.2.0-11.0.1-mingw-w6411.0.1.7z ``` 4. 解压到任意目录,比如: ``` D:\mingw64 ``` 5. 将 `D:\mingw64\bin` 添加到系统环境变量 `PATH` 中 --- ## ✅ 验证是否成功 打开命令提示符(CMD 或 PowerShell),运行: ```bash gcc --version g++ --version ``` 输出应类似: ``` gcc (WinLibs x86_64-posix-seh-ucrt) 14.2.0 Copyright (C) 2024 Free Software Foundation, Inc. ``` 再测试能否生成可执行文件: ```bash echo #include <stdio.h>> hello.c echo int main(){printf("Hello\n");return 0;}>> hello.c gcc hello.c -o hello.exe hello.exe ``` 输出 `Hello` 表示一切正常。 --- ## 🧱 如何用它编译 pybind11 扩展? ### 步骤 1:确保已安装 pybind11 ```bash pip install pybind11 ``` ### 步骤 2:修改 `setup.py` 使用 MinGW-w64 默认情况下,Python 的 `distutils` 会优先使用 MSVC。你需要强制指定使用 `mingw32`。 ```python # setup.py from setuptools import setup, Extension from pybind11.setup_helpers import Pybind11Extension, build_ext import pybind11 ext_modules = [ Pybind11Extension( 'simple_add', ['simple_add.cpp'], include_dirs=[pybind11.get_include()], language='c++', cxx_std=14 ), ] setup( name='simple_add', ext_modules=ext_modules, cmdclass={'build_ext': build_ext}, zip_safe=False, ) ``` ### 步骤 3:设置编译器为 mingw32 并构建 在命令行中运行: ```bash python setup.py build_ext --inplace --compiler=mingw32 ``` ✅ 成功后你会看到: - 生成 `simple_add.cp311-win_amd64.pyd`(64位) - 使用的是 MinGW-w64 编译的 DLL --- ## ⚠️ 常见问题及解决 | 问题 | 原因 | 解决方法 | |------|------|---------| | `error: Microsoft Visual C++ 14.0 is required` | Python 默认找 MSVC | 设置 `--compiler=mingw32` | | `ld: cannot find -lpython311` | 找不到 Python 库 | 确保 `libpython311.a` 存在,或添加路径 | | 编译慢 | MinGW-w64 优化较差 | 使用 `-O2` 或换回 MSVC 生产环境 | --- ## 💡 替代方案(其他预编译包) | 名称 | 地址 | 说明 | |------|------|------| | **MSYS2** | https://www.msys2.org/ | 功能强大但需安装,非“解压即用” | | **TDM-GCC** | https://jmeubank.github.io/tdm-gcc/ | 曾流行,现已停止维护 | | **Nuwen's MinGW** | https://nuwen.net/mingw.html | 真正便携,但更新慢 | 👉 对于“解压即用”需求,**WinLibs 是目前最佳选择**。 --- ## ✅ 总结:推荐流程 1. 下载 WinLibs 提供的 MinGW-w64 64位 包 🔗 [https://www.winlibs.com/](https://www.winlibs.com/) 2. 解压到 `D:\mingw64` 3. 添加 `D:\mingw64\bin` 到 `PATH` 4. 在 `setup.py` 构建时加上 `--compiler=mingw32` 5. 运行: ```bash python setup.py build_ext --inplace --compiler=mingw32 ``` 即可使用 MinGW-w64 编译出 64位 `.pyd` 模块! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值