【发布时间】:2020-02-27 14:18:55
【问题描述】:
我想知道在我的 Makefile 中使用 -S GCC 选项是否有任何好处。
我已经编译如下 C 文件已经有一段时间了:
gcc -c a.c -o a.o
gcc -c b.c -o b.o
---
gcc a.o b.o -o a.out
现在会更好:
gcc -S a.c -o a.s
gcc -S b.c -o b.s
---
gcc -c a.s -o a.o
gcc -c b.s -o b.o
---
gcc a.o b.o -o a.out
显然还有跳过.o 阶段的选项,直接将.s 文件组装成二进制文件。您认为哪个选项最好,为什么?
【问题讨论】:
-
为什么要将汇编代码作为中间阶段?在大多数情况下,人们并不关心实际的汇编代码。
-
出于某种原因您要检查生成的汇编代码吗?
-
不是真的,我想那没有意义
-
您也可以通过调用
gcc a.c b.c -o a.out完全跳过.s和.o。中间对象文件很有用,例如,如果您的构建过程不止一次需要它们。