韦东山嵌入式第一期学习笔记DAY_5——9_1gcc常用选项__gcc编译过程详解

作者:GWD 时间:2019.7.6

一、课程内容
1、本节课着重讲解:
1)、gcc和arm-linux-gcc的常用选项-V,-O,-E,-S,-C;
2)、介绍了3种.c文件变成可执行文件的步骤:
2、问:GCC的常用选项及其功能?
答:
gcc的使用方法:
gcc [选项] 文件名
-v:查看gcc编译器的版本,显示gcc执行时的详细过程
-o :Place the output into ,指定输出文件名为file,这个名称不能跟源文件名同名
-E:Preprocess only; do not compile, assemble or link,只预处理,不会编译、汇编、链接
-S:Compile only; do not assemble or link,只编译,不会汇编、链接
-c:Compile and assemble, but do not link,编译和汇编,不会链接

3、问:一个C/C++文件变成可执行文件的三种方法?
答:需要经过预处理、编译、汇编和连接等四步才可以变成一个可执行文件。
实验代码:hello程序并上传到linux虚拟机。
在这里插入图片描述
在这里插入图片描述
1)、方式1(不推荐):
gcc hello.c 输出一个a.out,然后./a.out来执行该应用程序。
在这里插入图片描述
gcc -o hello hello.c 输出hello,然后./hello来执行该应用程序。
在这里插入图片描述
2)、方式2:
gcc -E -o hello.i hello.c(预处理)
在这里插入图片描述
gcc -S -o hello.s hello.i(编译)
在这里插入图片描述
gcc -c -o hello.o hello.s(汇编)
在这里插入图片描述
gcc -o hello hello.o(连接)
在这里插入图片描述
在这里插入图片描述
.o:object file(OBJ文件)
小结:
1)、输入文件的后缀名和选项共同决定gcc到底执行那些操作。
2)、在编译过程中,除非使用了-E、-S、-c选项(或者编译出错阻止了完整的编译过程)
否则最后的步骤都是链接。

二:学习要点:
1、问:预处理、编译、汇编、连接分别有什么作用?
答:预处理是展开宏定义,以“#”开头的命令被称为预处理命令;编译是把C文件“翻译”成汇编代码;汇编是把上一步输出的汇编代码翻译成一定格式的机器码;连接是将上一步生成的OBJ文件和系统库OBJ文件连接起来。
三:代码:(无)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值