如何使用gcc编译到程序集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用gcc编译到程序集相关的知识,希望对你有一定的参考价值。

如何使用gcc编译为程序集而不是可执行文件。我知道有一个-S标志,但是在makefile中我在哪里使用它。例如,如果我使用标志-O3 -o exe_name,我应该在哪里放-S标志?

答案

我建议也使用-fverbose-asm,因为生成的汇编程序有一些生成的注释,“解释”代码。例如:

gcc -S -fverbose-asm -O2 foo.c

将在foo.s(带一些注释)生成汇编代码foo.c生成的汇编代码

要了解GCC优化正在做什么,甚至可以尝试-fdump-tree-all(但这会产生数百个文件!)。

另一答案

您可以要求GCC生成程序集文件,而不是目标文件(或可执行文件)。

例如:

gcc -Wall -c test.c

将从test.c(test.o)生成一个目标文件。

gcc -Wall -o test test.c

将从test.c生成一个名为'test'的可执行文件

gcc -Wall -S test.c

将从test.c(test.s)生成一个程序集文件

另一答案

把它放在任何地方。

gcc -O3 -S -o output.asm ...

将生成的程序集存储在qazxsw poi中。

以上是关于如何使用gcc编译到程序集的主要内容,如果未能解决你的问题,请参考以下文章

使用 GCC 生成可读的程序集?

如何使用 gcc 生成可以用 nasm 编译的汇编代码 [重复]

将程序集 .s 与 gcc 错误链接

C程序存储结构

gcc如何编译运行c语言程序

GCC 程序集 "+t"