簡體   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