以下内容源于网络资源的学习与整理,如有侵权请告知删除。
参考博客
1、如何在Windows上使用GCC编译器?
2、MinGW安装和使用-腾讯云开发者社区-腾讯云
一、MinGW的简介
GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的,如果我们想在 Windows 平台使用 GCC 编译器,可以安装 GCC 的移植版本。
目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种,分别为 MinGW 和 Cygwin。
其中,MinGW 侧重于服务 Windows 用户可以使用 GCC 编译环境,直接生成可运行 Windows 平台上的可执行程序,相比后者体积更小,使用更方便。而 Cygwin 则可以提供一个完整的 Linux 环境,借助它不仅可以在 Windows 平台上使用 GCC 编译器,理论上可以运行 Linux 平台上所有的程序。
MinGw 全称 Minimalist GNU for Windows,应用于 Windows 平台,可以为我们提供一个功能有限的 Linux 系统环境以使用一些 GNU 工具,比如 GCC 编译器、gawk、bison 等等。
它由以下几部分组成:
- 编译器(支持C、C++、ADA和Fortran);
- GNU工具;
- mingw-get(用于Windows平台安装和部署MinGW和MSYS的命令行安装器);
- mingw-get-inst(用于GUI打包)。
二、MinGW的安装
1、下载下载器
MinGW官方网址:http://www.mingw.org/。
如果上述网站出错,则到网址 MinGW - Minimalist GNU for Windows 下载。
上述操作将得到一个名为 mingw-get-setup.exe 的安装文件。
2、安装下载器
1、双击运行刚刚下载的安装文件,看到如下界面:
2、点击“Install”进入下面界面,然后选择默认的安装路径即 C:\MinGW,
点击"Continue"继续。
3、等待安装完成(可能会有错误提示,多尝试几次就好),然后点击"Continue"。
此时桌面出现下面图标,并且C:\MinGW\bin
目录下存在mingw-get.exe文件,则表明安装成功。
3、安装组件
上面只是安装了一个下载器。接下来我们将通过这个下载器,在线下载与安装所需的组件。
1、双击运行下载器(有的版本在安装之后会自动运行),看到下面这个界面:
2、选择所需的组件,然后右键选择“Mark for Installation”。
这里为了使 GCC 同时支持编译 C 语言和 C++,需勾选下图中标注的 2 项。
在安装程序中,复选框为绿色表示已经安装的项目,复选框为白色表示没有安装的项目。因此如果需要删除,只需要在绿色复选框右键后选择“Mark for removal”即可。
勾选完成后,在菜单栏中选择Installation -> Apply Changes
,弹出如下对话框:
选择“Apply”,然后耐心等待,直至安装成功,即可关闭此界面。
3、由于某些不明的原因,整个安装过程中可能会提示某些组件下载失败,但没关系,后续需要时可以通过 MinGw Installer安装界面中的 “All Packages”选项中,手动选择指定的安装包进行安装。
或者在联网状态下,(先把C:\MinGW\bin
写入环境变量中,见下面第5点)在Windows 平台的命令窗口中输入“mingw-get install gcc”,这个操作会自动补全gcc相关的组件。
Microsoft Windows [版本 10.0.22624.1680]
(c) Microsoft Corporation。保留所有权利。
C:\Users\XJH>mingw-get install gcc
http://prdownloads.sourceforge.net/mingw/libquadmath-6.3.0-1-mingw32-dll-0.tar.xz?download
165.01 kB / 165.01 kB |================================================| 100%
http://prdownloads.sourceforge.net/mingw/libgomp-6.3.0-1-mingw32-dll-1.tar.xz?download
59.55 kB / 59.55 kB |================================================| 100%
http://prdownloads.sourceforge.net/mingw/binutils-2.28-1-mingw32-bin.tar.xz?download
2.50 MB / 2.50 MB |================================================| 100%
http://prdownloads.sourceforge.net/mingw/gcc-core-6.3.0-1-mingw32-bin.tar.xz?download
13.09 MB / 13.09 MB |================================================| 100%
http://prdownloads.sourceforge.net/mingw/gcc-core-4.8.1-4-mingw32-doc.tar.lzma?download
7.03 MB / 7.03 MB |================================================| 100%
http://prdownloads.sourceforge.net/mingw/gcc-6.3.0-1-mingw32-man.tar.xz?download
244.10 kB / 244.10 kB |================================================| 100%
http://prdownloads.sourceforge.net/mingw/gcc-6.3.0-1-mingw32-info.tar.xz?download
504.67 kB / 504.67 kB |================================================| 100%
http://prdownloads.sourceforge.net/mingw/gcc-6.3.0-1-mingw32-lang.tar.xz?download
1.27 MB / 1.27 MB |================================================| 100%
install: gcc-6.3.0-1-mingw32-lic.tar.xz
mingw-get: *** ERROR *** package gcc-6.3.0-1-mingw32-lic.tar.xz is already installed
install: gcc-core-4.8.2-mingw32-dev.tar.meta
mingw-get: *** ERROR *** package gcc-core-4.8.2-mingw32-dev.tar.meta is already installed
install: libquadmath-6.3.0-1-mingw32-dll-0.tar.xz
installing libquadmath-6.3.0-1-mingw32-dll-0.tar.xz
mingw-get: *** ERROR *** C:\MinGW\/bin/libquadmath-0.dll: extraction failed
mingw-get: *** ERROR *** C:\MinGW\/bin/libquadmath-0.dll: probable package conflict; existing file not overwritten
#省略部分内容
mingw-get: *** ERROR *** C:\MinGW\/lib/gcc/mingw32/6.3.0/libgomp.spec: probable package conflict; existing file not overwritten
install: gcc-core-4.8.1-4-mingw32-doc.tar.lzma
installing gcc-core-4.8.1-4-mingw32-doc.tar.lzma
install: gcc-6.3.0-1-mingw32-man.tar.xz
installing gcc-6.3.0-1-mingw32-man.tar.xz
install: gcc-6.3.0-1-mingw32-info.tar.xz
installing gcc-6.3.0-1-mingw32-info.tar.xz
install: gcc-6.3.0-1-mingw32-lang.tar.xz
installing gcc-6.3.0-1-mingw32-lang.tar.xz
4、确认组件是否安装成功。在C:\MinGW\bin
目录下如有下面内容,则表示安装成功。
5、在Windows 平台的命令窗口中输入“gcc -v”,此时提示gcc不是内部命令。在当前用户(这里是XJH)的用户变量Path中,添加路径C:\MinGW\bin
即可。
此时再输入“gcc -v”,则显示如下:
C:\Users\XJH>gcc -v
specs
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
mingw32
../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --with-gmp=/mingw --with-mpfr --with-mpc=/mingw --with-isl=/mingw --prefix=/mingw --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-6.3.0-1' --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --enable-libgomp --disable-libvtv --enable-nls
win32
gcc 6.3.0 (MinGW.org GCC-6.3.0-1)
C:\Users\XJH>
三、MinGW的使用
完成上面操作后,我们就可以在当前 Windows 平台上编译、运行 C 或者 C++ 程序了。
这里以运行一个 C 语言程序为例(假设存储路径为:C:\Users\XJH\Desktop\demo.c):
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello, World!\n");
system("pause");
return 0;
}
在此基础上,在命令行窗口中执行如下指令:
Microsoft Windows [版本 10.0.22624.1680]
(c) Microsoft Corporation。保留所有权利。
C:\Users\XJH>cd C:\Users\XJH\Desktop\
C:\Users\XJH\Desktop>gcc demo.c -o demo
C:\Users\XJH\Desktop>
则会在C:\Users\XJH\Desktop\(即桌面)生成一个demo.exe 可执行文件。找到该文件并双击,即可看到程序的执行结果: