Liunx系统下使用gcc进行程序预处理、编译、汇编和链接

Liunx系统下使用 gcc 进行程序预处理、编译、汇编和链接:

GCC

1.生成main.c,sum.c文件

2.编译成可重定位的目标文件

cpp -E main.c main.i
cc -S main.i main.s
as main.s -o main.o

类比出sum

链接

ld -m elf_x86_64 main.o sum.o /usr/lib/x86_64-linux-gnu/libc.so.6 -o hello -dynamic-linker /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbegin.o -lc /usr/lib/gcc/x86_64-linux-gnu/9/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o

注意 gcc 版本号:

否则报错:

G++

第一步c++ -E main.c -o main.i

第二步c++ -S main.i -o main.s

第三步as -o main.o main.s

Sum:

ld -m elf_x86_64 main.o sum.o /usr/lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libstdc++.so.6 -o main -dynamic-linker /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbegin.o -lc /usr/lib/gcc/x86_64-linux-gnu/9/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o

Liunx系统下使用gcc进行程序预处理、编译、汇编和链接
http://example.com/2023/03/16/Liunx系统下使用gcc进行程序预处理、编译、汇编和链接/
作者
zhanghao
发布于
2023年3月16日
许可协议