0
点赞
收藏
分享

微信扫一扫

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)



文章目录

  • ​​1. Mingw及Mingw-W64简介​​
  • ​​2. 下载MinGW-W64​​
  • ​​3. 安装MinGW-W64​​
  • ​​3.1. 在线安装MinGW-W64​​
  • ​​3.2. 离线安装MinGW-W64​​
  • ​​4. 配置环境变量​​
  • ​​5. 解决不能使用make命令的问题​​
  • ​​6. 使用示例 —— 编译运行HelloWorld​​


1. Mingw及Mingw-W64简介

​MinGW项目​​​(​​官方网站​​​)是​​Minimalist GNU for Windows​​的缩写,是​本地Windows应用程序的极简主义开发环境​,该项目旨在​将gcc编译器移植到Windows系统上​,关于gcc编译器,请参考我的另一系列博客:

  • ​​【Linux基础】Linux C语言编程(上篇) | gcc的使用​​
  • ​​【Linux基础】Linux C语言编程(中篇) | make的使用​​
  • ​​【Linux基础】Linux C语言编程(下篇) | gdb的使用​​

MinGW主要包括:

  • GNU Compiler Collection(GCC)​:包括C,C ++,ADA和Fortran编译器;
  • 适用于Windows的GNU Binutils:汇编程序,链接程序,归档管理器;
  • 一个带有可选GUI的命令行安装程序(mingw-get):用于MS-Windows上的MinGW和MSYS部署;
  • 一个GUI首次设置工具(mingw-get-setup):可以方便的使mingw-get启动并运行;

​Mingw-W64​​​项目(​​官方网站​​)由Mingw项目发展而来,​为了更好的对64位系统和新的API提供支持​,它在2007年对mingw项目进行了分支,得到了广泛的使用和发展,比较主流的一些使用Mingw-w64的项目如下:

  • ​​Fedora cross-compiler​​
  • ​​OpenSUSE​​
  • ​​LibreOffice​​
  • ​​QEMU​​
  • ​​Qt​​

除了MinGW,还有一个项目叫​​Cygwin​​​(​​官方网站​​),两个项目的区别如下:

  • MinGW旨在将Gcc套件移植到Windows上​,即:对于MinGW提供的gcc,其使用方法和Linux中的Gcc并无差异,但是其编译出的可执行程序是Windows平台的;
  • Cygwin旨在提供一个类似于Windows上的Linux虚拟机​,使得Linux中的Gcc可以在Windows平台上使用,即:Cygwin提供了一种在Windows平台上运行Linux应用程序的方法;

鉴于当前大多数电脑都是64位机器和windows7/10操作系统,在本文中我们选择使用MinGW-W64。

2. 下载MinGW-W64

首先需要说明:

MinGW-W64的安装包有离线安装和在线安装两种方式:

  • 在线安装:只需下载一个1M不到的安装程序,由自动安装程序连接服务器进行下载,​如果访问外网速度较快​,建议选择;
  • 离线安装:下载整个安装包,下载后只需解压即可使用,优点是可以使用第三方下载工具下载整个文件,​如果访问外网速度较慢​,建议选择;
  • 如果不能正常访问外网,这里我上传了离线安装包到百度网盘,有需自提;
  1. 进入MinGW-W64官方网站:http://mingw-w64.org,点击​​Downloads​​进入下载页面:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw
  2. 该页面下的​​Pre-built toolchains and packages​​是包含了Mingw-w64及特定工具的整合包,这里我们只需要下载Mingw-w64,所以点击下面的​​SourceForge​​,进入Mingw-w64代码的托管网站:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_02
  3. 进入Source Forge后,点击​​File​​一栏,然后点击自己需要的版本进行下载:
  • 在线安装包:​​mingw-w64-install.exe​在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_命令行_03
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_04

  • 离线安装包:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_05
    其中的选择参数说明如下表:

参数分类

参数

说明

CPU架构

x86_64

64位

CPU架构

i686

32位

操作系统接口协议

win32

开发windows应用程序

操作系统接口协议

posix

开发Linux、Mac应用程序

异常处理模型(32bit CPU)

dwarf

版本新,性能较好,不支持64位

异常处理模型(32bit CPU)

sjlj

版本低,同时支持32位和64位

异常处理模型(64bit CPU)

seh

版本新,性能较好,不支持32位

异常处理模型(64bit CPU)

sjlj

版本低,但支持32位和64位

综上所述,我选择下载的gcc版本为​​8.1.0​​,其他参数为​​x86_64-win32-seh​​:

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_安装包_06

3. 安装MinGW-W64

3.1. 在线安装MinGW-W64

  1. 双击运行下载的在线安装程序:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_07
  2. 点击​​Next​​,安装程序自动连接服务器以便获取需要的文件:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_安装包_08
  3. 要安装的MinGW-W64版本选择:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_09
  4. 选择MinGW-w64的安装目录(​安装路径不要有中文和空格​):
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_linux_10
  5. 等待安装完成即可。

3.2. 离线安装MinGW-W64

  1. 解压下载的离线安装包:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_安装包_11
  2. 将其中的​​mingw64​​文件夹复制到安装的目录下(这里我直接复制到C盘);
  3. 安装完成。

4. 配置环境变量

MinGW-W64安装完成后,其工具都在​​bin​​目录下,如图:

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_linux_12

为了在命令行使用这些工具,需要将该目录配置到​​path​​环境变量中:

  1. 右击​​计算机​​,选择​​属性->高级系统设置->环境变量​​,选中系统变量中的​​Path​​环境变量,点击编辑:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_13
  2. 在最后添加目录:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_linux_14
  3. 逐个点击​​确定​​,返回。
  4. 重启电脑,使环境变量生效。
  5. 测试是否安装并且配置成功:
    在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_15

5. 解决不能使用make命令的问题

在MinGW-W64中,因为make是一个自动化编译构建工具,并无32位64位之分,所以​MinGW-W64直接沿用了32位版本中的make工具​,为了表明这个原因,make工具的名称变为​​mingw32-make.exe​​,所以我们​在命令行使用的时候不能直接使用​​make​​命令,而需要输入完整的名称​,很不方便,如图:

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_linux_16

如何解决这一问题呢?

其实​只需要将​​mingw32-make.exe​​文件复制出来一个副本,然后将副本更名为make即可​:

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_17

在命令行中测试是否可以正常使用make:

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_安装包_18

6. 使用示例 —— 编译运行HelloWorld

在Windows下使用gcc和make等工具和在Linux下使用方法相同,具体请查看我在文章开篇推荐的博文,此处不作赘述,用一个示例程序演示下使用即可:

  1. 编写源代码
/* file hello.c */
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
/* 打印Hello World */
printf("Hello World.\n");

/* 程序暂停,便于观察结果 */
system("pause");

/* 程序返回,结束 */
return 0;
}
  1. 编写makefile
hello.exe:hello.c
gcc hello.c -o hello.exe
  1. 编译
make

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_命令行_19

  1. 运行:在命令行输入​​hello.exe​​​运行或者直接双击​​hello.exe​​可执行程序:

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_安装包_20

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_21

在Windows上使用Mingw-W64进行C/C++开发(gcc工具链)_mingw_22



举报

相关推荐

0 条评论