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进行程序预处理、编译、汇编和链接/