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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

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中的应用程序,也可以用于编译Linux内核和内核模块,是Linux中C语言开发的核心工具。

2.程序调试工具-GDBGDB是Linux中一个强大的命令行调试工具。在GDB中可以设置断点、单步运行、查看变量等:1、启动程序,可以按照用户的要求随心所欲的运行程序。2、可让被调试的程序在用户所指定的断点处停住。〔断点可以是条件表达式〕3、当程序被停住时,可以检查此时你的程序中所发生的事。4、可以动态的改变程序的执行环境。

3.工程管理工具-make和Makefile在Linux系统下的C程序开发中,常使用make命令和Makefile文件作为工程管理工具。make是Linux下的一款程序自动维护工具,配合makefile的使用,就能够统筹管理工程中的各个文件,并在编译过程中根据时间戳,有选择地进行编译,减少程序生成时间。Makefile用于描述工程中模块之间的相互依赖关系,以及产生目标文件所要执行的命令。当make命令运行时,会读取makefile来确定要建立的目标文件或其他文件,然后对源文件的日期和时间进行比较,从而决定使用那些规那么来创立目标文件。

1.2在Linux中使用C语言开发在Linux操作系统中,应用程序的生成主要包括以下几个步骤:编辑编译汇编连接调试运行

1.2.1开发流程和开发工具图1.1Linux中C语言程序的开发流程

1.2.1开发流程和开发工具编译编译是指把高级语言编写的程序转换成相应处理器的汇编语言程序的过程。其本质是一个文本转换过程。编译过程:C语言的语法解析汇编语言代码的生成

1.2.1开发流程和开发工具汇编汇编是指把汇编语言源程序翻译成目标系统的二进制代码〔机器代码〕的过程。每个源文件汇编后将生成一个目标文件。连接连接是指将汇编生成的多段机器代码组合成一个可执行程序。连接器的作用:将编译和汇编过程生成的目标文件中的代码段、数据段等局部进行合并,并添加相应的文件头。调试调试是程序开发中一个很重要的环节。在Linux程序开发中,最主要的调试工程就是GDB

1.2.1开发流程和开发工具Linux下程序的开发过程及相关工具的使用如图1-2所示。图1-2Linux程序开发过程及相关工具

1.2.2Linux中程序的运行原理系统调用:Linux为应用程序提供的一系列接口。库函数:编译系统提供给应用程序调用的一系列接口。C库函数调用系统调用实现相应功能C语言应用程序调用C库函数或直接调用系统调用图1.3Linux下C语言程序的结构

1.2.2Linux中程序的运行原理C语言源程序文件经过编译-汇编-连接,便可生成可执行程序。可执行程序的组成程序头:包含供OS加载的信息,OS根据这些信息加载可执行程序。程序主体〔二进制机器代码〕:程序运行时逐条执行这些机器代码,完成程序功能。

1.2.2Linux中程序的运行原理可执行程序格式在Linux中,普遍使用ELF格式来作为可执行程序的格式或程序生成过程中的中间文件格式。ELF格式:ELF〔ExecutableandLinkingFormat,可执行连接格式〕是UNIX系统实验室作为应用程序二进制接口而开发和发布的。ELF文件格式包括三种主要的类型:可执行文件可重定位文件共享库

1.2.2Linux中程序的运行原理可执行文件〔应用程序〕包含了适合于执行的一个程序的代码和数据可以直接运行可重定位文件〔*.o〕又称为目标文件包含适合于与其他目标文件链接来创立可执行文件或者共享目标文件的代码和数据。不能直接运行共享文件〔*.so〕也称动态库文件包含了在连接时被连接器ld和运行时被加载器使用的代码和数据

1.2.2Linux中程序的运行原理ELF格式的文件既要参与程序的连接〔创立一个程序时〕,又要参与程序的执行〔运行程序时〕为了方便和效率,ELF格式目标文件提供了两种并行视图,分别反映了连接和执行的不同需求。从连接器〔Linker〕角度看,是一些节的集合从程序加载器〔Loader〕的角度看,是一些段的集合ELF格式的程序和共享库具有相同的结构,只是段的集合和节的集合上有些不同链接器看到的是由节〔Section

文档评论(0)

寒傲似冰 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8071104010000026

1亿VIP精品文档

相关文档