【笔记】C语言的编译
前言
C语言的编译学习笔记
直接编译源码
- 直接编译源码,转化为可执行文件
-o <file>
:指定输出的文件路径
1 | gcc <source>.c |
编译多个源文件
- 一次性编译多个C语言源文件
1 | gcc <source_1>.c <source_2>.c |
gcc编译过程
预编译
- 预编译会把引入的头文件的源码直接引入
- 预编译会去除注释
-o <file>
:指定输出的文件路径<source>
:源码文件
1 | gcc -E <source>.c |
编译
- 把源码转化为二进制指令
<source>
:编译后的文件
1 | gcc -c <source>.o |
链接
- 把编译后的文件与操作系统的库链接起来
- 转化为可执行文件
<source>
:可执行文件
1 | gcc <source> |
查看库
- 查看一个编译后的文件使用了什么库
1 | ldd <source> |
关于预编译指令
- 在源码中可以编写预编译的指令,实现选择性的编译
- 通常在头文件中使用
<macro>
:宏名字
如果定义
- 如果定义了指定宏,那么编译以下语句
1 |
|
如果没定义
- 如果没有定义指定宏,那么不会编译以下语句
1 | int main() |