gcc compiler

gcc 编译器命令
  1. gcc 编译程序过程包含
    • 预处理(.i文件)
    • 编译(.S文件)
    • 汇编(.o文件)
    • 链接(可执行文件)
graph LR
main.c --> |预处理|main.i --> |编译|main.S --> |汇编|main.o
start.c --> |预处理|start.i --> |编译|start.S --> |汇编|start.o
main.o --> |链接| main可执行文件
start.o --> |链接|main可执行文件
  1. 编译过程
    • 预处理:gcc -E hello.c -o hello.i
    • 编 译:gcc -S hello.i -o hello.s
    • 汇 编:gcc -c hello.s -o hello.o
    • 链 接:gcc hello.o xxx.o -o hello
  2. 常见使用示例
    • gcc hello.c 直接输出为二进制文件 a.out,通过 ./a.out 执行
    • gcc hello.c -o hello 输出名为 hello 的可执行文件,通过 ./hello 执行
    • gcc -c hello.c 输出 hello.o 文件,用于链接
    • gcc hello.o main.o -o main 链接多个编译文件,生成 main 可执行文件
  3. 编译常用选项
    • -Wall 打印警告信息
    • -w 忽略所有警告信息
    • -O1,-O2,-O3 表示程序优化等级,O3 最高
    • -g 用来产生调试信息,供 gdb 调试器使用