需求
gcc 如何生成中间文件
解决
预处理
生成 .i
文件。
gcc -E hello.c
g++ -E test.cpp -o test.ii
# 阻止源文件和头文件中的注释
g++ -E -C test.cpp -o test.ii
编译
生成 .s
文件
gcc -S hello.c
g++ -S test.ii
g++ -S test.ii -o demo.s
g++ -S test.cpp -o test.s
# 添加必要注释
g++ -S test.cpp -o test.s -fverbose-asm
汇编
生成 .o
文件
gcc -c hello.c
g++ -c test.s
g++ -c test.s -o test_obj.o
链接
生成 .out
文件
gcc hello.c
g++ test.o
g++ test_obj.o -o test_obj
一步生成
# -save-temps 保留所有中间文件
g++ test.cpp -save-temps
反汇编
objdump -d hello.o