Как я могу скомпилировать сборку с gcc

Как скомпилировать сборку вместо исполняемого файла с помощью gcc. Я знаю, что есть флаг -S, но где его использовать в make файле. Например, если я использую флаги -O3 -o exe_name, где я должен поместить флаг -S?

Ответ 1

Я также предлагаю использовать -fverbose-asm, потому что тогда сгенерированный ассемблер имеет некоторые сгенерированные комментарии, которые "объясняют" код.

И чтобы понять, что делают оптимизации GCC, можно даже попробовать -fdump-tree-all (но это создает сотни файлов!).

Ответ 2

Вы можете попросить GCC создать файл сборки вместо объектного файла (или исполняемого файла).

Например:

gcc -Wall -c test.c

Создает объектный файл из test.c(test.o).

gcc -Wall -o test test.c

Создает исполняемый файл с именем test из test.c

gcc -Wall -S test.c

Создаст файл сборки из test.c(test.s)

Ответ 3

Поместите это где угодно.

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

сохранит созданную сборку в output.asm.