GCC摘记

GCC编译过程包括预处理、编译、汇编和链接四个阶段。预处理阶段处理宏定义和条件编译;编译阶段将源代码转换成汇编代码;汇编阶段将汇编代码转换为机器码;链接阶段将目标文件与其他库结合。编译选项如-I指定头文件路径,-shared创建动态库,-fPIC用于生成位置独立代码,-Wl,-rpath设置动态库搜索路径,-Wall显示更多警告,-pg生成gprof调试信息,-ggdb和-g生成调试信息,-w关闭警告。" 116761276,9947913,2021安全员-B证模拟考试及复习资料,"['安全员考试', '建筑工程', '安全规范', '施工安全', '考证复习']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,GCC简称

GNU C Compiler -> GNU Compiler Collection
表示现在可以支持多种语言

二,编译的四个阶段

GCC编译程序时,会经历四个阶段

  1. 预处理。
  2. 编译。
  3. 汇编。
  4. 链接。
三,引入头文件搜索目录 
  1. 默认。/usr/include 、 /usr/local/include 等。
  2. CXX_INCLUDE_PATH环境变量。这个和-I是有区别的。
  3. -I 选项。
四,链接库
链接库其实就是把很多.o文件打成一个包,生成一个库文件,另外LD_LIBRARY_PATH指定目录 ,
  1. -r 选项。
  2. -shared选项。指定生成动态库。
  3. -fPIC。编译为位置独立的代码,否则是位置相关的,此时共享代码可能失效。
动态库的搜索顺序如下:
  1. 编译目标代码时 ”-Wl,-rpath,” 指定的动态库搜索路径(当指定多个动态库搜索路径时,路径之间用冒号”:”分隔)。如,-L../xx -Wl,-rpath=../xx
  2. 环境变量 LD_LIBRARY_PATH 指定的动态库搜索路径。
  3. 配置文件 /etc/ld.so.conf 中指定的动态库搜索路径。
  4. 默认的动态库搜索路径 /lib,如果是64位系统还包括 /lib64。
  5. 默认的动态库搜索路径 /usr/lib,如果是64位系统还包括 /usr/lib64。
五,其它选项
  1. -Wall。输出更多警告信息。
  2. -pg。生成只有gprof才可以识别的时间调用统计信息。
  3. -ggdb。生成只有gdb可以调试的调试信息。
  4. -g。加入调试信息。
  5. -w 。 关闭所有警告信息。
六,待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值