gcc执行简单了解

115 阅读1分钟

主要步骤

  1. 预处理
  2. 将源码编译为汇编语言文件
  3. 汇编器将汇编语言文件翻译成目标文件
  4. 链接器将目标文件链接到库文件,解析符号和可执行文件

image.png

动手实操 - 从 c 开始

环境:x86-64

//test.c
int main() {return 32;}//custom your exit code
# compile
gcc -S test.c -o test.s
# assemble
gcc -c test.s -o test.o
# link
gcc test.o -o test

# execute
./test
# verify exit code
echo $?

动手实操 - 从 asm 开始

  • 架构:x86-64
  • 汇编器:NASM

test.asm

global _start
_start:
    mov rax, 60
    mov rdi, 69 ; custom your exit code here, 0-255
    syscall

60 是系统调用 exit 对应的序号:参考 x86-64 syscalls

# assemble
nasm -felf64 test.asm
# link by ld(GUN Linker)
ld test.o -o test

# execute
./test
# verify
echo $?