Tags: C
Description: 关于 GCC 的个人笔记
GCC 概述
- 对于 GCC 6.1 以及之后的版本,默认使用的 C++ 标准是 C++ 14;使用 -std=c++11 来指定使用哪一个标准
- 将源代码编译为可执行程序的流程
- g++ 编译时使用 C++ 的标准库,而 gcc 默认使用 C 的标准库,g++ 等价于 gcc -xc++ -lstdc++ -shared-libgcc
- Linux 下可以使用 man gcc 命令查看帮助手册
GCC 的安装
- Windows 下安装 MinGW 即可
- gcc version 7.4.0 (GCC)
GCC 编译程序的步骤
- 预处理(pre-processing):
cpp hello.c > hello.i
,将引入的头文件(#include)和定义的宏(#define)扩展到代码中 - 编译(compilation):
gcc -S hello.i
,将预处理过的文件编译成汇编程序 - 汇编(assembly):
as -o hello.o hello.s
,将汇编程序转换成目标文件,二进制格式,每一个源文件都需要产生一个目标文件 - 链接(linker):
ld -o hello.exe hello.o ...libraries...
,将一个或多个目标文件连接成最终的可执行文件
GCC 常用参数
- --version 查看版本
- -v verbose(冗长的),输出编译的详细信息
- -std 指定标准
- -o 指定输出文件的名称
- -Wall 输出所有的警告信息
- -c 只将源文件编译为 object 文件(*.o),而不进行链接,之后可以使用
gcc -o myprog.exe file1.o file2.o
将多个 object 文件连接成可执行文件 - -shared 编译为共享库(.dll,.so)
- -S 编译为汇编代码