gcc编译器可编译C,C++,JAVA,Object C,ADA
同时是个交叉编译器-----在一个平台上生成另一个平台可执行代码
编译过程:预处理,编译,汇编,链接
预处理:头文件展开,宏替换,条件编译 .I 符号 : ——E
编译:进行编译,生成 .o的文件,检查语法错误 : ——C
汇编:将 .o生成 .s文件 :——S
链接:生成可执行文件,并且文件名可以自己命名3
<>和“ ”的区别在于,前者是搜索系统的头文件目录,后者是先搜索当前.c,再搜索系统的头文件目录
gcc三级优化: ——O1 一级优化,提供基础级别的优化
——O2 二级优化,提供更高级别代码优化,会占用更多的编译时间
——O3 三级优化,提供最高级别的代码优化
编译器静态编译static:编译器在编译可执行文件时,将可执行文件需要调用的对应动态链接库 .so .lib的部分提取出,链接到可执行文件中去
静态库和动态库的区别:静态库在可执行之前加载,速度快;可执行文件占内存大;编译耗时;升级麻烦,不易部署