How can I compile to assembly with gcc

c, gcc, linux, x86

Solution

I suggest also using `-fverbose-asm` because then the generated assembler has some generated comments which "explains" the code. For example:

gcc -S -fverbose-asm -O2 foo.c

would generate in `foo.s` (with some comments) the assembler code produced by compiling `foo.c`

And to understand what the GCC optimizations are doing one could even try `-fdump-tree-all` (but this produces hundreds of files!).

Problem

How do I compile to assembly instead of an executable with gcc. I know there is an -S flag, but where do I use it in the makefile. For example, if I use flags -O3 -o exe_name, where should I put the -S flag?

Original source

Related problems