在WINDOWS环境下配置C语言编译环境
在WINDOWS环境下配置C语言编译环境
注:本篇文章同样适用于 C++
为什么需要配置
要想让自己写出来的 C 语言源代码程序 ( *.c 源代码文件
) 转换为可以直接运行的二进制程序 (*.exe 可执行文件
) , 从实质上解释, 就是我们需要一个转换器用来将 C 这门人能够理解的 高 级语言转换为机器能够识别执行的 低 级语言。这个转换的过程,我们称之为编译
。
从专业角度来分析,这里的转换器我们用一个专有名词 编译器
来称呼它。
在 Linux 平台上,C语言的编译器是 GCC
(GNU Compiler Collection),利用 Linux 自带的包管理器我们很快就能安装上然后使用(几乎是安装即用)(甚至 Linux 其本身就是用 C 写的),然后我们便可以使用例如 Vim 之类的编辑器编写代码,并马上可以调用 GCC
进行编译调试( 目标格式 *. out
)。
GCC
与 Linux 均包含在 GNU
(一套理想且自由的操作系统)项目内,他们俩的关系就像哥哥与弟弟一样亲密。
而在Windows平台上,这个编译器是 MinGW
(Minimalist GNU for Windows),又称 “ mingw32 ”,是将 GCC
编译器和 GNU Binutils
(一种分析二进制文件的工具) 移植到 Win32
平台下的产物,包括一系列头文件( Win32API )、库 和 可执行文件。它可以产生32位的Windows可执行文件( *.exe
),但是 MinGW
太老了,现在Windows平台大多是64位的,使用32位程序已经不能使电脑性能得到充分利用。但还好,我们还有 MinGW-w64
,这个项目最初是从原 MinGW
产生的分支,后来分离出去独立发展了。MinGW-w64
可以产生 32位及64位 Windows 可执行文件,可满足用户对支持64位的要求,同时其支持的平台也大大扩展,从只能运行在 Windows 平台的 MinGW
,到能在Win32、Win64、Linux32、Linux64等主流平台上都有版本可用的 MinGW-w64
。
如何配置 MinGW-w64
下载二进制文件
MinGW-w64
将自己所有的源代码以及自身编译后的二进制文件都发布在了 Sourceforge
(全球最大的开放源代码软件开发平台和仓库)。
你可以点击这里来进入它的版本归档界面→Sourceforge
你应该会看到如下界面
( 截至我写这篇文章时(2020-06-30),目前 MinGW-w64
GCC
最新版本为 v8.1.0 )
我们可以在介绍里看到 MGW
的多个历史版本,还有它支持的各类处理器平台版本。
我们可以看到版本表里最新 v8.1.0 版本的下载选项多达8项,一般的我们下载 x86_64-posix-sjlj
这个版本就行了。
(点击名称即可开始下载)
若你具有很强的动手能力,你可以下载发布页里的压缩包,他们是 MinGW-w64
的源代码,你可以试着亲自把他们编译为二进制文件。
你可以点击这里来进入它的版本发布界面→Sourceforge
由于SF服务器在国外,有时下载体验会十分糟糕。
有梯子的小伙伴请用梯子下载。
当然你也可以找国内靠谱的软件源进行下载。
安装并配置系统变量
安装
压缩包下载后,我们还需要选一个合适的位置将它解压,而这个位置就相当于是安装位置。
(压缩包详情)
(解压文件到某位置)
注:为便于记忆,我们可以给解压目标文件夹改个短一点的名字,例如 MinGW64
(解压之后)
配置系统变量
解压之后,我们打开目录下的 bin
子文件夹,我们会看见一大堆没图标的 .exe 可执行文件,可能会让你头皮发麻,但是不用紧张。我们此时只需要记住当前这个 bin
文件夹的路径。
然后我们需要对系统变量进行配置。
- 按下键盘上的【徽标键】+【Pause】组合键,打开系统属性窗口。
- 单击左侧选项栏中的
高级系统设置
。 - 点击
环境变量
按钮。 - 在
系统变量
一栏中选择Path
项,选择编辑。 - 点击 新建 ,将刚才复制的
bin
目录粘贴进去,点击确定。
我们给系统添加环境变量就类似于地图软件给我们预先规划好路线,等到出发时直接照路线走就行了,而不至于出发时临时到处去问路。
验证安装
当你看到这时,你的安装配置都应该已经完成了。
现在我们还需要进行最后一步,验证安装。
(简单点就是看你到底装没装上)
-
按键盘上的【徽标键】+【X】打开快捷菜单。
-
选择
Windows PowerShell
选项 -
在出现的 PowerShell 命令行窗口中 输入
gcc -v
-
回车,观察现象。
(出现上图的信息说明一切顺利)
杂谈
GCC (GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)
——百科词条-GCC
GCC
并不单纯只支持 C 语言的编译,它还支持其他几种编程语言,例如Java
,C++
。
还记得那个令人头皮发麻的 bin
文件夹吗。
那里边的 exe 便是这些语言的编译前端。
例如里边的:
- 这个
g++.exe
是C++
的编译器,它不仅可以编译C++
源代码,还可以编译C
源代码。 gcc.exe
此 gcc 非彼GCC
,这个文件是C
语言的编译器,但它不可以编辑C++
源代码。