1、gcc概述
GNU计划提供的编译器。(在unix系统中,则是cc编译器)
2、由源文件到可执行文件需要经历的步骤
1.预处理:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)(.i)使用预处理器(预处理阶段处理的都是以#开头的代码)2.编译:检查语法、转成汇编、生成汇编文件(.s/.S)使用编译器3.汇编:由汇编变为目标代码(机器代码)生成目标文件(.o)使用汇编器as4.链接:链接所有目标文件,生成可执行程序,使用链接器ld
3、 交叉编译
在宿主机下编程出在目标机下运行的代码的过程,这就是交叉编译。(首先需下载交叉编译器),即在当前cpu平台编译出在其他cpu平台运行的代码的过程。
4、编译选项
(1)-E:只进行预处理(.i)
gcc -E demo.c > demo.i :将预处理信息放到.i文件中
(2)-S:只激活预处理和编译,就是指把文件编译成为汇编代码。(.s/.S)
(3)-c:只激活预处理,编译,和汇编,也就是他只把程序做成obj文件(.o)
(4)-o:制定目标名称
(5)-g 生成调试信息。GNU 调试器可利用该信息。
(6)-I+路径:指定头文件的第三方搜索路径
#include “stdio.h”和#include <stdio.h>的区别:搜索路径不同
<>:在系统头文件目录(/usr/include)中搜索,若没有,则报错

本文介绍了GCC编译器的基本概念,从源文件到可执行文件的编译过程,以及交叉编译。详细讲解了包括-E、-S、-c、-o、-g、-I、-L、-static、-O1、-O2、-O3、-w、-Wall在内的编译选项的用途和用法,并讨论了Linux下动态链接库和静态链接库的搜索路径及环境变量的影响。
最低0.47元/天 解锁文章
2824

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



