步骤 | 所进行的内容 | 生成的文件 |
---|---|---|
预处理 | 展开头文件/宏替换/去掉注释/条件编译 | test.i main .i |
编译 | 检查语法,生成汇编 | test.s main .s |
汇编 | 汇编代码转换机器码 | 目标文件 test.o main.o |
链接 | 链接到一起生成可执行程序 | 可执行文件 a.out |
宏
优点
- 代码复用性
- 提高性能
缺点
- 不可调试(预编译阶段进行了替换)
- 无类型安全检查
- 可读性差,容易出错
静态链接
动态链接
静态库和应用程序编译在一起,在任何情况下都能运行,而动态库是动态链接,文件生效时才会调用。
参考文献:
[1] https://blog.youkuaiyun.com/weixin_41143631/article/details/81221777