Minimalist GNU for Windows

Minimalist GNU for Windows

文章目录

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

      bash 复制代码
      pacman -Syu
    • 关闭并重启 MSYS2 终端,然后运行:

      bash 复制代码
      pacman -Syu
    • 安装 mingw-w64 编译器:

      bash 复制代码
      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

    bash 复制代码
    brew install mingw-w64
  • Linux(以 Debian/Ubuntu 为例):

    bash 复制代码
    sudo apt update
    sudo apt install mingw-w64

二、使用 MinGW-w64 编译代码

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

    创建一个 hello.c 文件:

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

    使用 MinGW 编译:

    bash 复制代码
    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 应用的示例:

    bash 复制代码
    x86_64-w64-mingw32-gcc hello.c -o hello.exe
  4. 链接 Windows 库

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

    bash 复制代码
    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 文件:

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

    编译生成 DLL:

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

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

    使用 mingw-w64 编译:

    bash 复制代码
    x86_64-w64-mingw32-g++ myprogram.cpp -o myprogram.exe

六、调试与优化

  1. 启用调试信息

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

    bash 复制代码
    x86_64-w64-mingw32-gcc -g myprogram.c -o myprogram.exe
  2. 优化编译

    • -O2:大多数优化。
    • -O3:开启所有优化(可能增加编译时间)。
  3. 静态链接

    使用 -static 选项可以生成不依赖外部 DLL 的可执行文件:

    bash 复制代码
    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 工具链:

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

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

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

bash 复制代码
brew uninstall mingw-w64
3.2 手动卸载(Linux)

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

  • Debian/Ubuntu

    bash 复制代码
    sudo apt remove --purge mingw-w64
  • Fedora

    bash 复制代码
    sudo dnf remove mingw32-gcc mingw64-gcc
  • Arch Linux

    bash 复制代码
    sudo pacman -R mingw-w64-gcc
4. 检查是否已成功卸载

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

bash 复制代码
which x86_64-w64-mingw32-gcc

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

七、资源

相关推荐
木子Linux3 分钟前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
不惑_20 分钟前
小白入门 · 腾讯云轻量服务器部署 Hadoop 3.3.6
服务器·hadoop·腾讯云
阿甘知识库39 分钟前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
yylの博客2 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh
进击的code2 小时前
windows 下使用WLS2 编译aosp Android14并刷机到pixle 5a
windows
zhou周大哥3 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
loong_XL3 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
夕泠爱吃糖3 小时前
C++中如何实现序列化和反序列化?
服务器·数据库·c++
the丶only3 小时前
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
linux·运维·服务器·docker·gitlab
书生-w4 小时前
Docker部署GitLab服务器
服务器·docker·gitlab