Bootstrap

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

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

2. 下载MinGW-W64

首先需要说明:

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

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

  • 离线安装包:

    其中的选择参数说明如下表:
参数分类参数说明
CPU架构x86_6464位
CPU架构i68632位
操作系统接口协议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

3. 安装MinGW-W64

3.1. 在线安装MinGW-W64

  1. 双击运行下载的在线安装程序:
  2. 点击Next,安装程序自动连接服务器以便获取需要的文件:
  3. 要安装的MinGW-W64版本选择:
  4. 选择MinGW-w64的安装目录(安装路径不要有中文和空格):
  5. 等待安装完成即可。

3.2. 离线安装MinGW-W64

  1. 解压下载的离线安装包:
  2. 将其中的mingw64文件夹复制到安装的目录下(这里我直接复制到C盘);
  3. 安装完成。

4. 配置环境变量

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

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

  1. 右击计算机,选择属性->高级系统设置->环境变量,选中系统变量中的Path环境变量,点击编辑:
  2. 在最后添加目录:
  3. 逐个点击确定,返回。
  4. 重启电脑,使环境变量生效。
  5. 测试是否安装并且配置成功:

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

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

如何解决这一问题呢?

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

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

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

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

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

/bbs.csdn.net/topics/618679757)**

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

;