GCC
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)
安装
sudo apt install gcc g++

查看版本
gcc/g++ -v/--version
使用方式
- 可以通过xshell连接Linux服务器使用
- 也可以在vs code中打开终端使用,vs code中打开方式如下
 
gcc test.c -o test
./test

GCC工作流程

GCC常用参数选项
gcc编译选项 | 说明 |
---|
-E | 预处理指定的源文件,不进行编译 | -S | 编译指定的源文件,但是不进行汇编 | -c | 编译、汇编指定的源文件,但是不进行链接 | -o [file1] [file2] /[file2] -o [file1] | 将文件file2编译成可执行文件file1 | -I directory | 指定include包含文件的搜索目录 | -g | 在编译的时候,生成调试信息,该程序可以被调试器调试 | -D | 在程序编译的时候,指定一个宏 | -w | 不生成任何警告信息 | -Wall | 生成所有警告信息 |
关于-D的用法
#include<stdio.h>
int main()
{
printf("hello , myfriend\n");
#ifdef TT
printf("测试使用\n");
#endif
return 0;
}
如上代码,正常情况下“测试使用”是不会输出的。  使用宏的情况,如下: 
gcc和g++的区别
- 后缀为.c的,gcc把它当作是c程序,g++把它当作是c++程序
- 后缀为.cpp的,两者都会认为是c++程序
- 编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是gcc命令不能自动和c++程序使用的库链接,所以通常用g++来完成链接。
- 链接可以用g++或者gcc -lstdc++
说明: 参考视频https://www.nowcoder.com/study/live/504
|