嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt

嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt

ID:56471320

大小:774.00 KB

页数:18页

时间:2020-06-19

嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt_第1页
嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt_第2页
嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt_第3页
嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt_第4页
嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt_第5页
资源描述:

《嵌入式Linux上的C语言编程实践--第1章 Linux环境下C语言的开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第1章Linux环境下C语言的开发21.1Linux下的C语言开发环境Linux和C语言有很深的渊源,因为Linux本身就是用C语言编写的,C语言是因Unix而生的,而Linux与Unix完全兼容。在Linux操作系统中提供了C语言的开发环境:程序生成工具:GCC程序调试工具:GDB工程管理工具:make命令和Makefile文件1.程序生成工具-GCCGCC是(GNUCompilerCollection)GNU编译器工具集的简称。GCC提供了编译器、汇编器、连接器以及一系列辅助工具GCC可以用于生成Linux中的应用程序,也可以用于编译

2、Linux内核和内核模块,是Linux中C语言开发的核心工具。2.程序调试工具-GDBGDB是Linux中一个强大的命令行调试工具。在GDB中可以设置断点、单步运行、查看变量等:1、启动程序,可以按照用户的要求随心所欲的运行程序。2、可让被调试的程序在用户所指定的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、可以动态的改变程序的执行环境。3.工程管理工具-make和Makefile在Linux系统下的C程序开发中,常使用make命令和Makefile文件作为工程管理工具。make是Linux下

3、的一款程序自动维护工具,配合makefile的使用,就能够统筹管理工程中的各个文件,并在编译过程中根据时间戳,有选择地进行编译,减少程序生成时间。Makefile用于描述工程中模块之间的相互依赖关系,以及产生目标文件所要执行的命令。当make命令运行时,会读取makefile来确定要建立的目标文件或其他文件,然后对源文件的日期和时间进行比较,从而决定使用那些规则来创建目标文件。1.2在Linux中使用C语言开发在Linux操作系统中,应用程序的生成主要包括以下几个步骤:编辑编译汇编连接调试运行1.2.1开发流程和开发工具图1.1Linux中

4、C语言程序的开发流程1.2.1开发流程和开发工具编译编译是指把高级语言编写的程序转换成相应处理器的汇编语言程序的过程。其本质是一个文本转换过程。编译过程:C语言的语法解析汇编语言代码的生成1.2.1开发流程和开发工具汇编汇编是指把汇编语言源程序翻译成目标系统的二进制代码(机器代码)的过程。每个源文件汇编后将生成一个目标文件。连接连接是指将汇编生成的多段机器代码组合成一个可执行程序。连接器的作用:将编译和汇编过程生成的目标文件中的代码段、数据段等部分进行合并,并添加相应的文件头。调试调试是程序开发中一个很重要的环节。在Linux程序开发中,最

5、主要的调试工程就是GDB1.2.1开发流程和开发工具Linux下程序的开发过程及相关工具的使用如图1-2所示。图1-2Linux程序开发过程及相关工具1.2.2Linux中程序的运行原理系统调用:Linux为应用程序提供的一系列接口。库函数:编译系统提供给应用程序调用的一系列接口。C库函数调用系统调用实现相应功能C语言应用程序调用C库函数或直接调用系统调用图1.3Linux下C语言程序的结构1.2.2Linux中程序的运行原理C语言源程序文件经过编译-汇编-连接,便可生成可执行程序。可执行程序的组成程序头:包含供OS加载的信息,OS根据这些

6、信息加载可执行程序。程序主体(二进制机器代码):程序运行时逐条执行这些机器代码,完成程序功能。1.2.2Linux中程序的运行原理可执行程序格式在Linux中,普遍使用ELF格式来作为可执行程序的格式或程序生成过程中的中间文件格式。ELF格式:ELF(ExecutableandLinkingFormat,可执行连接格式)是UNIX系统实验室作为应用程序二进制接口而开发和发布的。ELF文件格式包括三种主要的类型:可执行文件可重定位文件共享库1.2.2Linux中程序的运行原理可执行文件(应用程序)包含了适合于执行的一个程序的代码和数据可以直接

7、运行可重定位文件(*.o)又称为目标文件包含适合于与其他目标文件链接来创建可执行文件或者共享目标文件的代码和数据。不能直接运行共享文件(*.so)也称动态库文件包含了在连接时被连接器ld和运行时被加载器使用的代码和数据1.2.2Linux中程序的运行原理ELF格式的文件既要参与程序的连接(创建一个程序时),又要参与程序的执行(运行程序时)为了方便和效率,ELF格式目标文件提供了两种并行视图,分别反映了连接和执行的不同需求。从连接器(Linker)角度看,是一些节的集合从程序加载器(Loader)的角度看,是一些段的集合ELF格式的程序和共享

8、库具有相同的结构,只是段的集合和节的集合上有些不同链接器看到的是由节(Section)头部表描述的一系列逻辑节的集合(也就是说它忽略了程序头部表)。加载器则是把ELF格式的文件看

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。