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