[编程] [分享] 五分钟配置 MinGW-W64 编译工具

  编译器是一个诸如 C 语言撰写的源程序一步一步走向机器世界彼岸的桥梁。 Gnu 项目的 GCC 编译器是常用的编译器之一。儿在Windows 上也有 MinGW 这样可用的套件,可以让我们使用 GCC 来生成我们撰写的程序。但是 MinGW 项目发展缓慢,不支持 Windows 新特性,驱使我转换到了 MinGW-W64 上了。其实 MinGW-W64 也发源于 MinGW 项目。<!--more-->

  要配置 MinGW-64 只需简单的三部即可完成。下面把我的步骤记录下来,共大家参考。

## 下载 -> 解压 -> 添加环境变量

  MinGW-W64 的官方主页是: <http://mingw-w64.org/>。 可以在网站上获取文档、找到下载地址等。

  下载可以前往 <https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/> 来查找适合自己的版本来下载。

  我选择下载的是 GCC 8.1.0 的 "**i686-win32-sjlj**" 这个版本的。

  这里的 "**i686**" 是处理器架构。 "**i686**" 是我们通常说的 **x86** 或者 32 位, "**X86_64**" 是 "**amd64**" 或者我们经常说的 64位。这里要说的是,你选择什么架构,就只能生成对应架构运行的程序,所以我是 64 位的系统依然是选择的 "**i686**" 的版本。

  "**Win32**" 是标准库的类型,除此还有 **posix** 可选。

  儿最后的 "**sjlj**" 是异常调试模型,这么高深的我就不过多解释了。

  下回来的是一个 ".7z" 的文件,我这里就用 7-Zip 来解压,并且把压缩包内的 "**mingw32**" 文件夹放到了 C 盘的根目录。

  为了可以在 Cmd (命令提示符) 下直接可以使用 gcc 等工具,我们应该把 "mingw32" 文件夹下的 "bin" 目录加入环境变量。 在 Windows 10 上的路径是:

1.   右击桌面上的 "此电脑” 图标或者直接按下 "Windows + Pause" 打开 “系统属性”,接着单机 "高级系统设置", 然后在新弹出来的对话框中点击 “环境变量”已打开 “环境变量” 设置界面;

2.   选择 “用户的环境变量” 或者 “系统环境变量” 中的 “Path” 一项,然后点击对应的 “编辑” 按钮,具体选择哪一种变量编辑,主要是当前用户下可用还是所有用户下可用的区别。

3.   在新弹出的对话框中填写你 MinGW-W64 下的 "bin" 文件夹的路径,我这里是 "C:\mingw32\bin",然后一路点击 “确定”。

  经过上面的设置,你可以在 CMD (命令提示符) 下键入 "gcc -v" 查看到版本等信息。


## 一个简单的 Windows 32 应用程序的示例

  我们可以敲一个简单的 Win32 应用程序来测试一下我们搭建的这个环境是不是可以用。你也可以把下面的代码保存成 ".c" 的 C 语言源代码文件,然后使用 "gcc -municode -mwindows 文件名.c" 来编译它。

    /** Win32之一个信息框
     * 或许是最简单的 Win32 应用程序了
     * 编译套件: MinGW i686-8.1.0-release-win32-sjlj-rt_v6-rev0
     * 时间: 21:39 2019/8/16
     * 编译命令行: gcc -municode -mwindows *Win32_MessageBox.c
     */

    #include <stdio.h>
    #include <windows.h>

    int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
    {
        MessageBox(NULL, TEXT("hello world"), TEXT("Message"), 0);
        return 0;
    }


好了,今天的文章就写道这里啦,感谢你的阅读。下次再见了哟。

## 参考资料

 [官方 FAQ 页面][1]

  [1]: https://sourceforge.net/p/mingw-w64/wiki2/FAQ/
 



2021-03-21 13:45:38 查看数:587     回复数:0 只看该作者
社区游客