Windows下MinGW安装GCC和G++超详细过程
MinGW安装GCC超详细过程
一、寻找安装MinGW方法
网上的内容乱七八糟,还是自己想办法好,本人试用两种方法,第一种方法,下载codeblocks(失败),第二种方法,从MinGW官网下载(成功)。
1. codablocks(失败)
下载路径http://www.codeblocks.org/downloads,安装教程:http://xinzhi.wenda.so.com/a/1541658150208115,安装完成目录大致如下图。
将安装出来的codeblocks目录下的MinGW放在,某个盘符的目录下,建议C盘(C:\MinGW),然后设置环境变量,在系统变量中添加如下内容。
C_INCLUDEDE_PATH C:\MinGW\include
LIBRARY_PATH C:\MinGW\lib
以及在Path变量下添加
Path C:\MinGW\bin
在CMD中输入
gcc -v
结果大致如下。
但这只是表明在MinGW目录下有gcc.exe这个可执行文件,如果不配置好基本没用,在CMD中进入自己的C语言代码目录下,然后按照gcc 【C语言文件名.c】 - o【C语言文件名】,大致如下。
结果一般情况下都是失败,中间过程我已经忘了,我用的是第二种方法成功。
2. 官网(成功)
官网路径:http://www.mingw.org/,安装教程:http://xinzhi.wenda.so.com/a/1519378836611631
,安装进行到这个阶段就先停一下。
二、正确的安装下载方法
建议先阅读官网主页左边这个部分的链接内容,直接阅读HOWTO Install the MinGW(GCC) Compiler Suite模块,可以直接帮助安装,如果实在担心出错,建议在此之前先读Getting Started模块,就是教你这个MinGW器怎么用,跟下载内容没多大关系。
按照官网教程如果想要利用这个MinGW安装器构造一个C语言编译器,需要如下基本内容。
那怎么完整获取这些内容呢?安装器也有些地方不完善,需要与这几个链接互补下载。安装器优先,因为一般版本比较新,然而有些时候有些文件很难下载下来,所以用链接下载。注意,如果安装器上不完整,不要只下载某一个(如dev),另一个(如dll)从链接上下载,这样会造成版本不同,严重的会造成你全部失败,要从头开始,所以只能选择一个下载方式。这里我把各个基本内容的文件下载方式列出来,。
- binutils(bin,其他文件下载方式类似于此)
- 从安装器上下载,可以从中找到位置,从图看出中我是按从安装器下载的,版本是2.32-1。
- 从链接上下载,点开链接会发现,跳出提示说文件不可获取,如下图所示。
但其实是可以下载的,只是他的后缀名是.lzma,但是.lzma格式是压缩文件,且需要二次解压,该资源下给出的是一次解压之后的文件,自然找不到.lzma文件。所以可以点开上图MinGW这个链接,依次点下去MinGW》Base》binutils》(选择最新版,这里最新版的是2.28)binutils-2.28》(出现一大堆文件,选择)binutils-2.28-1-mingw32-bin.tar.xz。.sig后缀名是数字签名文件,用来判断该文件是否完整,故而不用下载。
- mingw-runtime(dev and dll,负责minGW在运行过程中的处理)
- 从安装器上下载。
- 从链接上下载,方式与上面类似。如图所示。
- 如果没有会报错大致如下。
- w32api(上面没有说要下什么,其实只要下一个dev,因为只有一个dev)
- 从安装器上下载,
- 从链接上下载。
- mpc(dll)
- mpfr(dll)
- gmp(dll)
- pthreads(dev and dll)
- 从安装器上下载,安装器上只有dev 还有一个 libpthreadc,由于不太清楚是不是我想要的,所以我没有下载,转从链接下载,注意,如果安装器上不完整,不要只下载某一个(如dev),另一个(如dll)从链接上下载,这样会造成版本不同,严重的会造成你全部失败,要从头开始。
- 从链接下载,这里有几个加了pre,几个没加pre,其实都一样。还是选择最新版,然而2.10版本没有,dev和dll,有几个GC,GCE不知道是否一样,所以我退一版本选择2.9.1,这里就有了。
- iconv(dll,这个文件很重要,是很多其他网上提供的优化版本所缺失的,导致在CMD运行乱码)
- zlib(dll)
- 在安装器上下载,由于不知道,下载什么所以我都下载了,其实是只要下载dll,当然下载多了,没有影响。
- 在链接上下载发现只要下载一个dll。
- gettext(dll)
- 从安装器上下载,一样我全部下载了下来,谁让你不说。
- 从链接下载,发现还是只要下载dll。
- gcc-core(bin and dev and dll)
- 从安装器下载,我在安装器上没找到,所以转到从链接上下载。
- 从链接下载,内容略。
现在下载MinGW可用的其他语言模块,如下所示。
由于我后面还需要用C++所以,我补充下载了c++模块的内容,如果你不需要可以跳过。
- gcc-c++(bin and dev and dll)
- 在安装器上下载,没找到。
- 在链接上下载,成功,略。
这里需要补充几个后面需要的模块,如下图所示。
这几个模块只要下载前面四个就可以了。各位可以自己点开链接,下载。
三、整合下载内容
这里有从安装器上下载下来的内容,也有从链接下载下来的内容,那怎么办呢?
从安装器上下载下来的内容已经存在于你的MinGW目录下了,简单说就是不用你管了,需要你管的是,从链接下载下来的内容,将其全部解压,解压到下载的压缩文件目录下有非压缩文件的状态即可,然后全部拖到MinGW目录下,会自动排放,一般如果你是按照我上面的内容,是不会发生文件冲突的。
如果说发生文件冲突,也就是你的文件我已经有了,那你要好好想想,是否要将安装器上下载的内容进行移除,然后从链接上下载,或者不要覆盖,注意版本。
四、检测编译环境是否完整
如果不完整后面会有各种问题。
1. 检测gcc版本
gcc是我安装的版本。
g++也是我安装的版本。
2. 在CMD中运行.c文件,看是否报错
上面是由于我之前没有下载mingwrt也就是mingw-runtime,导致报错缺少文件crt2.0,而这文件是程序处理过程必须的文件,所以报错。
再次运行。
没有报错。
3. 在编辑器中运行,让CMD用gcc编译
如果你用的编辑器不需要在CMD中运行可能不需要这一步,看是否报错或乱码。
如果你提前在sublime中配置在CMD下编译.c文件,在sublime执行如下代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("请输入:\n");
scanf("%d",&n);
printf("%d\n",n);
return 0;
}
结果是:
没有乱码没有报错。
五、感想
没得塔西,没得塔西。