嵌入式系统开发
第3章嵌入式系统开发基础知识
授课教师:江兰帆
E-Mail: jiang_lanfan@
本章提要
11 GCC工具的使用
22 Makefile的编写
33 GDBGDB的使用的使用
44 Windows、Linux环境下相关
工具、命令的使用
Gcc编译器
(GNU piler)
是GNU推出的功能强大、性能优越的多
平台编译器,是GNU的代表作品之一。
gcc是可以在多种硬体平台上编译出可执
行程序的超级编译器,其执行效率与一
般的编译器相比平均效率要高20%~30%。
Gcc编译器
Gcc编译器能将C、C++语言源程序、
汇编程序和目标程序编译、连接成可执
行文件,如果没有给出可执行文件的名
字,。
在Linux系统中,可执行文件没有统一的
后缀,系统从文件的属性来区分可执行
文件和不可执行文件。
Gcc规则
Gcc通过后缀来区别输入文件的类别,
Gcc所遵循的部分约定规则如下:
–.c为后缀的文件,C语言源代码文件;
–.a为后缀的文件,是由目标文件构成的档案库
文件;
–.C, . 为后缀的文件,是C++源代码
文件;
–.h为后缀的文件,是程序所包含的头文件;
–.o为后缀的文件,是编译后的目标文件;
–.s为后缀的文件,是汇编语言源代码文件;
Gcc用法
• Gcc最基本的用法是∶
gcc [options] [filenames]
其中options就是编译器所需要的参数,
filenames给出相关的文件名称。
•举例:
gcc –c
gcc –c
gcc –I/usr/include –o prog
Gcc 参数说明
•-c : 只编译并生成目标文件。
•-o FILE : 生成指定的输出文件FILE,没有指定
FILE,。
•-O : 优化生成代码。
•-w: 不生成任何警告信息。
•-Wall: 生成所有警告信息。
•-g: 生成调试信息。GNU 调试器可利用该信息。
•-lLIBRARY: 连接时搜索指定的函数库LIBRARY。
Gcc 参数说明
•-Idirname:将dirname所指出的目录加入到程序头
文件目录列表中,是在预编译过程中使用的参数。
在你是用#include“file”的时候,gcc/g++会先在当
前目录查找你所制定的头文件,如果没有找到,
他回到缺省的头文件目录找,如果使用-I制定了
目录,他会先在你所制定的目录查找,然后再按
常规的顺序去找。对于#include<file>, gcc/g++会
到-I制定的目录查找,查找不到,然后将到系统
的缺省的头文件目录查找。
Gcc 参数说明
•-static:此选项将禁止使用动态库,所
以,编译出来的东西,一般都很大,也不
需要什么动态连接库,就可以运行。
•-share:此选项将尽量使用动态库,所以
生成文件比较小,但是需要系统由动态库。
Gcc 编译过程
•预处理: 这一步需要分析各种命令,如:
#define、#include、#ifdef等。gcc将调用cpp
程序来进行预处理。
•编译:这一步将根据输入文件产生汇编语言,由
于通常是立即调用汇编程序,所以其输出一般不
保存在文件中。
•汇编:这一步将汇编语言用作输入,
扩展名的目标文件。
•连接:在这一步,
件的适当位置上。gcc调用连接程序ld来完成最
终的任务。
嵌入式系统开发 第3章 嵌入式系统开发基础知识 来自淘豆网www.taodocs.com转载请标明出处.