1 GCC
1.1 什么是 GCC
- GCC 原名为 GNU C语言编译器(GNU C Compiler)
- GCC(GNU Compiler Collection,GNU编译器套件)可以编译 C、C++、Java、Go等语言
- Linux系统安装命令
sudo apt install gcc g++
, Windows下安装 - 查看版本
gcc/g++ -v/--version
1.2 GCC的工作流程
- 预处理的过程包括:头文件展开、宏替换、删除注释等。
1.3 gcc 和 g++ 的区别
编译器如何处理 | gcc | g++ |
---|---|---|
.c 文件 | 按 C 程序 | 按 C++ |
.cpp 文件 | 按 C++ | 按 C++ |
gcc main.cpp -o main -lstdc++
等价于g++ main.cpp -o main
g++
编译时自动链接了C++
标准库,内部还是调用的gcc
- 习惯上用
gcc
编译 C 程序,g++
编译 C++ 程序
1.4 GCC 常用参数选项
GCC 编译选项 | 说明 |
---|---|
-E | 预处理指定的源文件,不进行编译 |
-S | 编译指定的源文件,不进行汇编 |
-c | 汇编指定的源文件,不进行链接 |
-o | 将一至多个源文件链接成可执行文件 |
-I [大写 i] | 指定 include 包含文件的搜索目录 |
-l [library] | 在程序编译的时候,指定使用的库 |
-L | 指定编译时搜索库的路径 |
-fpic/fPIC | 生成与位置无关的代码(lib*.so) |
-std | 如:-std=c99,gcc默认标准是GNU C |
-On | n范围:0~3,编译器优化选项的4个级别 |
-Wall | 生成所有警告信息 |
-g | 在编译的时候,生成调试信息 |
-D | 在程序编译的时候,指定一个宏 |
-w | 不生成任何警告信息 |