繁体   English   中英

如何使用gcc编译到程序集

[英]How can I compile to assembly with 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 ...

将存储在生成assemby output.asm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM