[英]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.