如何使用GCC将多个.c文件编译成一个.s文件

如果我们有多个源文件,想要把他们编译成一个.s文件,有正向反向两种方法,
【如何使用GCC将多个.c文件编译成一个.s文件】如何使用GCC将多个.c文件编译成一个.s文件
文章图片

1.反向很简单,就正常编译成可执行,然后使用objdump反汇编即可:

objdump -d mcf_s &> mcf_s.s

2.正向直接编译使用如下的命令是不行的:
如何使用GCC将多个.c文件编译成一个.s文件
文章图片


需要先写一个单独的.c文件,然后将项目需要的所有的.c文件包含进去,如下图:

如何使用GCC将多个.c文件编译成一个.s文件
文章图片

然后使用如下的命令编译这个新的.c文件就可以了
gcc -std=c99 -m64 -S -DSPEC -DNDEBUG -Ispec_qsort -DSPEC_AUTO_SUPPRESS_OPENMP -O3 -ffinite-math-only -fprefetch-loop-arrays -ffast-math -mno-avx2 -march=znver1 -Wno-return-type -fno-strict-aliasing -DSPEC_LP64 mcf_test.c -o mcf_test.s



    推荐阅读