GCC是由许多组件组成的。GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器集合(GNU Compiler Collection)。
GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GNU操作系统专门编写一款编译器,现已被大多数类Unix操作系统(如Linux、BSD、MacOS X等)采纳为标准的编译器,甚至在微软的Windows上也可以使用GCC。GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等,并已被移植到其他多种硬件平台。
注意:GCC与gcc,g++是不同的东西:
GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。
gcc是GCC中的GUN C Compiler(C 编译器)
g++是GCC中的GUN C++ Compiler(C++编译器)
【gcc-c++又叫做g++,g++默认语言设置为 C++,而且在连接的时候自动包含标准 C++ 库。
gcc和g++的主要区别:
1.对于 .c和.cpp文件,gcc分别当做c和cpp文件编译。
gcc 指令为用户提供了“手动指定代表编译方式”的接口,即使用 -x 选项。例如,gcc -xc xxx 表示以编译 C 语言代码的方式编译 xxx 文件;而 gcc -xc++ xxx 则表示以编译 C++ 代码的方式编译 xxx 文件。
2.对于 .c和.cpp文件,g++则统一当做cpp文件编译。
3.使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL;在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ 。
编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了。】
对于 gcc 和 g++,初学者只要知道,对于 C 语言程序的编译,我们应该使用 gcc 指令,而编译 C++ 程序则推荐使用 g++ 指令,这就足够了。
Windows下如何gcc/g++编译器?
首先安装gcc/g++编译器,若之前是安装过Dev-C++、code::blocks之类的,这一步可省了。但可能需要将“Dev-Cpp安装路径\MinGW64\bin” 添加到Path环境变量中,Dev-Cpp安装路径部分应是你的Dev-Cpp实际安装路径,
我的Dev-Cpp安装路径是 C:\Program Files (x86)\Dev-Cpp
因此,将
C:\Program Files (x86)\Dev-Cpp\MinGW64\bin
添加到Path环境变量中
MinGW这个目录就是gcc移植到windows的结果。
MinGW是Minimalist GNU on Windows的略称。MinGW 是为了那些不喜欢工作在 Linux 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。
实际上 MinGW 并非一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合,GCC是 MinGW 的核心所在。【若需要安装MinGW,详见 GCC编译器的安装教程(Windows环境)_nhyltt的博客-CSDN博客_gcc编译器安装 】
gcc可以编译c,g++可以编译c++;gdb可以用来调试。
在cmd中验证gcc是否正常执行
在cmd控制台窗体以下,输入gcc -v。若已经安装成功好,会显示gcc的版本号信息。
在cmd中验证g++是否正常执行
在cmd控制台窗体以下,输入g++ -v。若已经安装成功好,会显示g++的版本号信息。
在cmd中验证gdb是否正常执行
在cmd控制台窗体以下,输入gdb -v。若已经安装成功好,会显示gdb的版本号信息。
帮助选项--help,可以查看简要帮助
gcc --help
g++ --help
gdb --help
以g++ --help为例,查看g++简要使用帮助,如下图:

下面介绍 G++ 编译器的基本使用方法
在D盘新建文件夹MinGwDemo中
用记事本建立一个test.cpp文件,内容如下:
- #include
- using namespace std;
-
- int main()
- {
- cout << "你好,世界!" << endl;
- cout << "Hello, world!" << endl;
- return 0;
- }
参见下图:

注意,保存时的设置:将默认编码UTF-8,修改为ANSI,防止g++编译后在CMD中运行中文显示乱码,若没改编码,也可用如下两法之一解决:
编译时加选项 -fexec-charset=GBK 也可以,如g++ test2.cpp -o test2 -fexec-charset=GBK
或
在cmd先输入运行 chcp 65001
【CHCP是一个计算机指令,能够显示或设置活动代码页编号。】
编译源文件使用
g++ 源文件名
或
g++ -o 可执行文件名 源文件名
前者,生成的默认源文件名a .exe,g++ test.cpp;后者可以指定可执行文件名(不要写扩展名.exe),如g++ test.cpp -o test,指定可执行文件名test .exe
打开cmd,切换路径到D:\MinGwDemo,再输入编译命令
参见下图

Ok!
gcc编译器入门教程gcc编译器入门教程_颯沓如流星的博客-CSDN博客_gcc编译器
gcc官方说明文档:Top (Using the GNU Compiler Collection (GCC))