Linux常用工具

  1. 预处理器 cpp
  2. C编译器 gcc
    1. 编译优化等级 -OX
      1. -O0:不优化
      2. -O2:默认级别
      3. -O3:展开循环、更多内联,有时反而变慢或行为不符预期
      4. -Os:空间优化(适合嵌入式):牺牲少量速度,换取更小代码段
      5. -Og:调试优化:保留调试信息并做少量优化,比 -O0 稍快
  3. C++ 编译器 g++
  4. 汇编器 as
  5. 链接器 ld
  6. 二进制工具集
    1. 符号显示器 nm
      1. nm -S a.o       # 查看符号大小和段信息

        image

         U:未定义     T:非静态代码段       r:静态只读数据段

    2. 信息查看器 objdump
      1. objdump -s 文件名    # 查看可执行程序数据段内容
      2. objdump -t a.o          # 查看符号表
    3. 段剪辑器 objcopy:裁剪去除elf格式
    4. readelf -S a.o      # 查看段表 
    5. size a.o        # 查看代码段/数据段/未初始化数据段大小

      image

—————补充知识点————

image

——————————————

编译过程:

  1. gcc -E -o main.i main.c
  2. gcc -S -o main.S main.i
  3. gcc -c -o main.o main.S
  4. gcc -o main_elf main.o

——————————————

posted @ 2025-08-11 22:00  番茄玛丽  阅读(10)  评论(0)    收藏  举报