当前位置: 首页 > article >正文

Minimalist GNU for Windows

Minimalist GNU for Windows

文章目录

    • Minimalist GNU for Windows
      • 一、MinGW 和 MinGW-w64 的安装
        • 1. 在 Windows 上安装 MinGW-w64
        • 2. 在 macOS 和 Linux 上安装 MinGW-w64
      • 二、使用 MinGW-w64 编译代码
      • 三、MinGW 编译选项
      • 四、MinGW-w64 常用命令
      • 五、MinGW 开发示例
      • 六、调试与优化
      • 七、 卸载 MinGW
        • 1、windows卸载
          • 1.1 使用 MinGW Installation Manager 卸载
          • 1.2 手动删除 MinGW 文件夹
        • 2. 在 MSYS2 上卸载 MinGW-w64
        • 3. 在 macOS 或 Linux 上卸载 MinGW-w64
          • 3.1 使用 Homebrew 卸载(macOS)
          • 3.2 手动卸载(Linux)
        • 4. 检查是否已成功卸载
      • 七、资源

MinGW(Minimalist GNU for Windows)是一组 GNU 工具,专门用于在 Windows 平台上编译 C、C++ 和 Fortran 等语言的代码。它提供了一个 Windows 版的 gcc 编译器,使开发者可以在 Windows 上使用 GNU 工具链进行开发。 mingw-w64MinGW 的扩展版,支持 64 位系统并提供更多功能。

一、MinGW 和 MinGW-w64 的安装

1. 在 Windows 上安装 MinGW-w64
  1. 通过 MSYS2 安装 MinGW-w64

    • 下载 MSYS2,安装并运行。

    • 运行以下命令更新 MSYS2:

      pacman -Syu
      
    • 关闭并重启 MSYS2 终端,然后运行:

      pacman -Syu
      
    • 安装 mingw-w64 编译器:

      pacman -S mingw-w64-x86_64-gcc   # 64位
      pacman -S mingw-w64-i686-gcc     # 32位
      
    • 配置环境变量,使编译器可以在任意路径下使用。

  2. 通过 MinGW-w64 Installer 安装

    • 从 MinGW-w64 下载页面 下载安装程序。
    • 选择适合的架构(32 位或 64 位)、编译器版本等进行安装。
    • 添加安装路径到环境变量 PATH
2. 在 macOS 和 Linux 上安装 MinGW-w64

mingw-w64 也可以在 macOS 和 Linux 上安装,用于交叉编译 Windows 可执行文件。

  • macOS

    brew install mingw-w64
    
  • Linux(以 Debian/Ubuntu 为例):

    sudo apt update
    sudo apt install mingw-w64
    

二、使用 MinGW-w64 编译代码

  1. 编译简单的 C/C++ 程序

    创建一个 hello.c 文件:

    #include <stdio.h>
    
    int main() {
        printf("Hello, MinGW!\n");
        return 0;
    }
    

    使用 MinGW 编译:

    x86_64-w64-mingw32-gcc hello.c -o hello.exe
    

    生成的 hello.exe 文件可以在 Windows 上直接运行。

  2. 编译为 32 位或 64 位可执行文件

    • 使用 x86_64-w64-mingw32-gcc 编译 64 位程序。
    • 使用 i686-w64-mingw32-gcc 编译 32 位程序。
  3. 跨平台编译

    使用 mingw-w64 进行跨平台开发时,可以在 Linux 或 macOS 上生成 Windows 可执行文件。以下是在 Linux/macOS 上交叉编译 Windows 应用的示例:

    x86_64-w64-mingw32-gcc hello.c -o hello.exe
    
  4. 链接 Windows 库

    MinGW-w64 提供了一些 Windows 专有的库,可以使用 -l 参数进行链接。例如,要使用 wininet 库来访问 Windows 的网络 API:

    x86_64-w64-mingw32-gcc myprogram.c -o myprogram.exe -lwininet
    

三、MinGW 编译选项

  • -Wall:打开所有警告信息。
  • -O2:进行优化编译。
  • -m32-m64:指定生成 32 位或 64 位代码。
  • -shared:生成动态链接库(DLL)。
  • -static:生成静态链接的可执行文件。

四、MinGW-w64 常用命令

  • x86_64-w64-mingw32-gcc:64 位 Windows 程序的 C 编译器。
  • x86_64-w64-mingw32-g++:64 位 Windows 程序的 C++ 编译器。
  • i686-w64-mingw32-gcc:32 位 Windows 程序的 C 编译器。
  • i686-w64-mingw32-g++:32 位 Windows 程序的 C++ 编译器。

五、MinGW 开发示例

  1. 生成 DLL 文件

    例如,要生成一个简单的动态链接库,可以创建 mydll.c 文件:

    #include <windows.h>
    
    __declspec(dllexport) void hello() {
        MessageBox(NULL, "Hello from DLL!", "MinGW DLL", MB_OK);
    }
    

    编译生成 DLL:

    x86_64-w64-mingw32-gcc -shared -o mydll.dll mydll.c -Wl,--out-implib,libmydll.a
    
  2. 在 C++ 中使用 Windows API

    #include <windows.h>
    #include <iostream>
    
    int main() {
        MessageBox(NULL, "Hello from MinGW-w64!", "Windows API", MB_OK);
        return 0;
    }
    

    使用 mingw-w64 编译:

    x86_64-w64-mingw32-g++ myprogram.cpp -o myprogram.exe
    

六、调试与优化

  1. 启用调试信息
    使用 -g 选项生成调试信息:

    x86_64-w64-mingw32-gcc -g myprogram.c -o myprogram.exe
    
  2. 优化编译

    • -O2:大多数优化。
    • -O3:开启所有优化(可能增加编译时间)。
  3. 静态链接
    使用 -static 选项可以生成不依赖外部 DLL 的可执行文件:

    x86_64-w64-mingw32-gcc -static myprogram.c -o myprogram.exe
    

    卸载 MinGW 的步骤取决于你的操作系统和安装方式。以下是不同情况下的卸载方法:

七、 卸载 MinGW

1、windows卸载
1.1 使用 MinGW Installation Manager 卸载

如果通过 MinGW Installation Manager 安装了 MinGW,可以按以下步骤卸载:

  1. 打开 MinGW Installation Manager
  2. 在列表中找到已安装的 mingw32-base 或其他包,右键点击并选择 Mark for Removal
  3. 点击 Installation 菜单,选择 Apply Changes,开始卸载。
1.2 手动删除 MinGW 文件夹

如果是手动安装的 MinGW(未使用安装程序),可以直接删除 MinGW 安装文件夹。常见路径是 C:\MinGWC:\Program Files (x86)\MinGW

  1. 打开文件资源管理器,导航到 MinGW 的安装目录。
  2. 选中该文件夹并删除。
  3. 删除 MinGW 路径变量:
    • 打开 控制面板 > 系统和安全 > 系统 > 高级系统设置
    • 选择 环境变量
    • 系统变量 中找到 Path 变量,点击 编辑
    • 找到 MinGW 的路径(如 C:\MinGW\bin),选中并删除。
    • 点击 确定 保存。
2. 在 MSYS2 上卸载 MinGW-w64

如果在 MSYS2 中安装了 mingw-w64,可以通过 pacman 命令来卸载:

  1. 打开 MSYS2 终端。

  2. 运行以下命令来卸载 64 位和 32 位的 mingw-w64 工具链:

    pacman -Rns mingw-w64-x86_64-gcc
    pacman -Rns mingw-w64-i686-gcc
    
  3. 也可以卸载整个 mingw-w64 相关的包:

    pacman -Rns $(pacman -Qq | grep "^mingw-w64-")
    
3. 在 macOS 或 Linux 上卸载 MinGW-w64
3.1 使用 Homebrew 卸载(macOS)

如果是通过 Homebrew 安装的 MinGW-w64,使用以下命令卸载:

brew uninstall mingw-w64
3.2 手动卸载(Linux)

如果在 Linux 系统上使用包管理器安装的 MinGW-w64,可以通过以下命令卸载:

  • Debian/Ubuntu

    sudo apt remove --purge mingw-w64
    
  • Fedora

    sudo dnf remove mingw32-gcc mingw64-gcc
    
  • Arch Linux

    sudo pacman -R mingw-w64-gcc
    
4. 检查是否已成功卸载

无论在哪个系统上,卸载完成后,可以通过以下命令检查 mingw 是否还存在:

which x86_64-w64-mingw32-gcc

如果返回 command not found,则说明已经成功卸载。

七、资源

  • MinGW 官方网站
  • MinGW-w64 项目主页
  • [MSYS2](

http://www.kler.cn/a/383782.html

相关文章:

  • 为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
  • 使用vue添加网站结构化标记schema
  • 【计算机网络】TCP协议面试常考(一)
  • sql报错信息将字符串转换为 uniqueidentifier 时失败
  • 【Qt问题】解决 Cannot retrieve debugging output
  • 【Spring】——SpringBoot项目创建
  • WPS单元格重复值提示设置
  • 【NLP】使用 SpaCy、ollama 创建用于命名实体识别的合成数据集
  • OPC通信
  • 数据库操作(php+mysql)
  • React中常用的hook函数(二)——useMemo和useCallback
  • C++ 并发专题 - 条件变量的使用
  • 30个Python小游戏,初学者也能快乐敲代码啦(全部源码均可分享)
  • RabbitMQ 高级特性——消息分发
  • 11、文件系统和日志管理
  • uniapp radio单选
  • 15分钟学 Go 第 34 天:依赖管理——Go Modules
  • 25中海油笔试测评春招秋招校招暑期实习社招笔试入职测评行测题型微测网题型分享
  • 为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
  • 【360】基于springboot的志愿服务管理系统
  • sklearn 安装使用笔记
  • Spring底层源码(一)
  • 【Mac】PD报错:无法为“Windows” 完成操作,虚拟机ID无效的解决办法
  • 中科院二区idea:多尺度注意力+特征融合!把准11个创新套路,直通毕业!
  • 高级数据库 项目流程记录
  • Oracle 第21章:实时应用集群(RAC)