一,GCC简称
GNU C Compiler -> GNU Compiler Collection表示现在可以支持多种语言
二,编译的四个阶段
GCC编译程序时,会经历四个阶段
- 预处理。
- 编译。
- 汇编。
- 链接。
三,引入头文件搜索目录
- 默认。/usr/include 、 /usr/local/include 等。
- CXX_INCLUDE_PATH环境变量。这个和-I是有区别的。
- -I 选项。
四,链接库
链接库其实就是把很多.o文件打成一个包,生成一个库文件,另外LD_LIBRARY_PATH指定目录 ,
- -r 选项。
- -shared选项。指定生成动态库。
- -fPIC。编译为位置独立的代码,否则是位置相关的,此时共享代码可能失效。
动态库的搜索顺序如下:
- 编译目标代码时 ”-Wl,-rpath,” 指定的动态库搜索路径(当指定多个动态库搜索路径时,路径之间用冒号”:”分隔)。如,-L../xx -Wl,-rpath=../xx
- 环境变量 LD_LIBRARY_PATH 指定的动态库搜索路径。
- 配置文件 /etc/ld.so.conf 中指定的动态库搜索路径。
- 默认的动态库搜索路径 /lib,如果是64位系统还包括 /lib64。
- 默认的动态库搜索路径 /usr/lib,如果是64位系统还包括 /usr/lib64。
五,其它选项
- -Wall。输出更多警告信息。
- -pg。生成只有gprof才可以识别的时间调用统计信息。
- -ggdb。生成只有gdb可以调试的调试信息。
- -g。加入调试信息。
- -w 。 关闭所有警告信息。
六,待续
GCC编译过程包括预处理、编译、汇编和链接四个阶段。预处理阶段处理宏定义和条件编译;编译阶段将源代码转换成汇编代码;汇编阶段将汇编代码转换为机器码;链接阶段将目标文件与其他库结合。编译选项如-I指定头文件路径,-shared创建动态库,-fPIC用于生成位置独立代码,-Wl,-rpath设置动态库搜索路径,-Wall显示更多警告,-pg生成gprof调试信息,-ggdb和-g生成调试信息,-w关闭警告。"
116761276,9947913,2021安全员-B证模拟考试及复习资料,"['安全员考试', '建筑工程', '安全规范', '施工安全', '考证复习']
358

被折叠的 条评论
为什么被折叠?



