开发环境的搭建和开发工具PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编代码目标代码
gcc –x assembler –c gcctest.s
直接编译成目标代码
gcc –c gcctest.c
使用汇编器生成目标代码
as –o gcctest.o gcctest.s
Embedded Operating Systems
20
汇编代码目标代码 直接编译成目标代码
使用汇编器
cpp — 预处理器 GNU C编译器在编译前自动使用cpp对用户程 序进行预处理
gcc — 符合ISO等标准的C编译器 g++ — 基本符合ISO标准的C++编译器 gcj — GCC的java前端 gnat — GCC的GNU ADA 95前端
Embedded Operating Systems
23
gcc的高级选项
-Wall:打开所有的警告信息
Embedded Operating Systems
24
根据警告信息检查源程序
Main函数的返回值为int
在函数的末尾应当返回一个值
Embedded Operating Systems
25
修改源程序
Embedded Operating Systems
7
一、GCC
很多人认为GCC只是一个C编译器, 其实GCC = GNU Compiler Collection
目前,GCC可以支持多种高级语言,如
C、C++ ADA Object C JAVA Fortran PASCAL
Embedded Operating Systems
8
GCC下的工具
Embedded Operating Systems
10
gcc使用举例(1) 源程序
Embedded Operating Systems
11
gcc使用举例(2) 编译和运行
运行
编译
Embedded Operating Systems
12
gcc的工作过程(1)
如果使用-v选项,则可以看到许多被隐藏的信 息
GNU开发工具链介绍
“工欲善其事, 必先利其器”
--《论语》
Embedded Operating Systems
2
主要内容
GNU Tools简介 GNU Tools交叉开发环境及其安装
Embedded Operating Systems
3
本地开发 vs 交叉平台开发
本地开发: 一般软件的开发属于本地开发,也就是说开发 软件的系统与运行软件的系统是相同的。
Embedded Operating Systems
6
GNU tools
GNU tools和其他一些优秀的开源软件可以完 全覆盖上述类型的软件开发工具。为了更好的 开发嵌入式系统,需要熟悉如下一些软件
GCC Binutils—辅助GCC的主要软件 Gdb make cvs
Embedded Operating Systems
26
优化编译
优化编译选项有:
-O0 缺省情况,不优化
-O1
-O2
不同程度的优化
-O3 等等
Embedded Operating Systems
27
gcc的优化编译举例(1) 考虑如下的源代码
不同的优化 编译选项
Embedded Operating Systems
28
gcc的优化编译举例(2) 使用time命令统计程序的运行
Embedded Operating Systems
21
4、编译成执行代码
目标代码执行代码
gcc –o gcctest gcctest.o
直接生成执行代码
gcc –o gcctest gcctest.c
Embedded Operating Systems
22
目标代码执行代码
直接生成执行代码
Embedded Operating Systems
9
GNU Tools—gcc
gcc是一个强大的工具集合,它包含了预处理 器、编译器、汇编器、链接器等组件。它会在 需要的时候调用其他组件。 输入文件的类型和传递给gcc的参数决定了gcc 调用具体的哪些组件。
对于开发者,它提供的足够多的参数,可以让 开发者全面控制代码的生成,这对嵌入式系统 级的软件开发非常重要
gcc –x cpp-output –S –o gcctest.s gcctest.cpp
也可以直接编译到汇编代码
gcc –S gcctest.c
来自百度文库
Embedded Operating Systems
18
预处理文件汇编代码
直接编译到汇编代码
Embedded Operating Systems
19
3、编译成目标代码
5
嵌入式交叉开发工具
掌握嵌入式开发工具的使用是进行嵌入式开发 的前提条件之一
与主流开发工具类似,嵌入式交叉开发工具也 包括
1. 编译器,即能够把一个源程序编译生成一个可执行 程序的软件
2. 调试工具,即能够对执行程序进行源码或汇编级调 试的软件
3. 软件工程工具,用于协助多人开发或大型软件项目 的管理的软件
Embedded Operating Systems
13
Embedded Operating Systems
14
gcc的编译过程
一般情况下,c程序的编译过程为
1、预处理 2、编译成汇编代码 3、汇编成目标代码 4、链接
Embedded Operating Systems
15
1、预处理
预处理:使用-E参数 输出文件的后缀为“.cpp”
交叉平台开发: 本课程所涉及到的嵌入式系统开发属于交叉平 台开发,也就是说开发软件的系统与运行软件 的系统不同。
Embedded Operating Systems
4
交叉开发平台
主机: 开发软件的平台,称为主机,往往是通用电脑;
目标机: 运行软件的平台,称为目标机,在这里是嵌入 式系统。
Embedded Operating Systems
gcc –E –o gcctest.cpp gcctest.c
使用wc命令比较预处理后的文件与源文件, 可以看到两个文件的差异
Embedded Operating Systems
16
预编译 行数 单词数 字节数
Embedded Operating Systems
17
2、编译成汇编代码
预处理文件汇编代码 1)使用-x参数说明根据指定的步骤进行工作, cpp-output指明从预处理得到的文件开始编译 2)使用-S说明生成汇编代码后停止工作
gcc –x assembler –c gcctest.s
直接编译成目标代码
gcc –c gcctest.c
使用汇编器生成目标代码
as –o gcctest.o gcctest.s
Embedded Operating Systems
20
汇编代码目标代码 直接编译成目标代码
使用汇编器
cpp — 预处理器 GNU C编译器在编译前自动使用cpp对用户程 序进行预处理
gcc — 符合ISO等标准的C编译器 g++ — 基本符合ISO标准的C++编译器 gcj — GCC的java前端 gnat — GCC的GNU ADA 95前端
Embedded Operating Systems
23
gcc的高级选项
-Wall:打开所有的警告信息
Embedded Operating Systems
24
根据警告信息检查源程序
Main函数的返回值为int
在函数的末尾应当返回一个值
Embedded Operating Systems
25
修改源程序
Embedded Operating Systems
7
一、GCC
很多人认为GCC只是一个C编译器, 其实GCC = GNU Compiler Collection
目前,GCC可以支持多种高级语言,如
C、C++ ADA Object C JAVA Fortran PASCAL
Embedded Operating Systems
8
GCC下的工具
Embedded Operating Systems
10
gcc使用举例(1) 源程序
Embedded Operating Systems
11
gcc使用举例(2) 编译和运行
运行
编译
Embedded Operating Systems
12
gcc的工作过程(1)
如果使用-v选项,则可以看到许多被隐藏的信 息
GNU开发工具链介绍
“工欲善其事, 必先利其器”
--《论语》
Embedded Operating Systems
2
主要内容
GNU Tools简介 GNU Tools交叉开发环境及其安装
Embedded Operating Systems
3
本地开发 vs 交叉平台开发
本地开发: 一般软件的开发属于本地开发,也就是说开发 软件的系统与运行软件的系统是相同的。
Embedded Operating Systems
6
GNU tools
GNU tools和其他一些优秀的开源软件可以完 全覆盖上述类型的软件开发工具。为了更好的 开发嵌入式系统,需要熟悉如下一些软件
GCC Binutils—辅助GCC的主要软件 Gdb make cvs
Embedded Operating Systems
26
优化编译
优化编译选项有:
-O0 缺省情况,不优化
-O1
-O2
不同程度的优化
-O3 等等
Embedded Operating Systems
27
gcc的优化编译举例(1) 考虑如下的源代码
不同的优化 编译选项
Embedded Operating Systems
28
gcc的优化编译举例(2) 使用time命令统计程序的运行
Embedded Operating Systems
21
4、编译成执行代码
目标代码执行代码
gcc –o gcctest gcctest.o
直接生成执行代码
gcc –o gcctest gcctest.c
Embedded Operating Systems
22
目标代码执行代码
直接生成执行代码
Embedded Operating Systems
9
GNU Tools—gcc
gcc是一个强大的工具集合,它包含了预处理 器、编译器、汇编器、链接器等组件。它会在 需要的时候调用其他组件。 输入文件的类型和传递给gcc的参数决定了gcc 调用具体的哪些组件。
对于开发者,它提供的足够多的参数,可以让 开发者全面控制代码的生成,这对嵌入式系统 级的软件开发非常重要
gcc –x cpp-output –S –o gcctest.s gcctest.cpp
也可以直接编译到汇编代码
gcc –S gcctest.c
来自百度文库
Embedded Operating Systems
18
预处理文件汇编代码
直接编译到汇编代码
Embedded Operating Systems
19
3、编译成目标代码
5
嵌入式交叉开发工具
掌握嵌入式开发工具的使用是进行嵌入式开发 的前提条件之一
与主流开发工具类似,嵌入式交叉开发工具也 包括
1. 编译器,即能够把一个源程序编译生成一个可执行 程序的软件
2. 调试工具,即能够对执行程序进行源码或汇编级调 试的软件
3. 软件工程工具,用于协助多人开发或大型软件项目 的管理的软件
Embedded Operating Systems
13
Embedded Operating Systems
14
gcc的编译过程
一般情况下,c程序的编译过程为
1、预处理 2、编译成汇编代码 3、汇编成目标代码 4、链接
Embedded Operating Systems
15
1、预处理
预处理:使用-E参数 输出文件的后缀为“.cpp”
交叉平台开发: 本课程所涉及到的嵌入式系统开发属于交叉平 台开发,也就是说开发软件的系统与运行软件 的系统不同。
Embedded Operating Systems
4
交叉开发平台
主机: 开发软件的平台,称为主机,往往是通用电脑;
目标机: 运行软件的平台,称为目标机,在这里是嵌入 式系统。
Embedded Operating Systems
gcc –E –o gcctest.cpp gcctest.c
使用wc命令比较预处理后的文件与源文件, 可以看到两个文件的差异
Embedded Operating Systems
16
预编译 行数 单词数 字节数
Embedded Operating Systems
17
2、编译成汇编代码
预处理文件汇编代码 1)使用-x参数说明根据指定的步骤进行工作, cpp-output指明从预处理得到的文件开始编译 2)使用-S说明生成汇编代码后停止工作