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

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

3 ответа

Решение

Я предлагаю также использовать -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" из test.c

gcc -Wall -S test.c

Будет производить сборочный файл из test.c (test.s)

Положите это в любом месте.

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

будет хранить сгенерированную сборку в output.asm,

Другие вопросы по тегам