第五六讲常用开发工具.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
主要内容 gcc编译系统的概念和使用 gdb程序调试工具的概念和使用 程序维护工具make 的概念和使用 6.11inux下的C语言编程概述 1.C语言概述 (1)C是中级语言 (2)C是结构化语言 (3)C语言功能齐全 (4)C语言可移植性好 6.1.2 linux下C语言开发流程 1.编写源代码 2.编译源程序 3.运行程序 4.调试程序 5.交叉编译 6.编写Makefile 1.编写源代码 启动linux后新建一个终端,在终端窗口中使用VI编辑器来编辑源程序,在命令行中输入命令:vi hello.c,即可启动VI编辑器 2.编译源程序 编译源程序的工具是GCC,在命令行输入“GCC –o hello hello.c”即可对hello.c源代码进行编译 3.运行源程序 在命令行中输入“./hello”即可运行该程序,命令中的“.”表示当前目录,起指示路径的作用,表示运行当前目录下的hello程序。 4.调试程序 调试是所有程序员都会面临的问题。当然,这不是必备的步骤,如果程序进一步复杂,就需要对程序进行调试,调试所用到的工具是GDB,GDB调试器是一款GNU开发组织并发布的UNIX/Linux下的程序调试工具。 5.交叉编译 嵌入式软件开发中往往是基于交叉编译环境的,开发是在宿主机中完成(本书中指x86架构的PC机),运行是在目标机(本书中指ARM架构的嵌入式产品)中。因此还需要交叉编译,通过基于ARM架构的GCC编译器将源程序编译成嵌入式产品中的可执行程序。 6.编写Makefile Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作。用户只需编写一次简单的编译语句就可以了。 6.3 GCC编译器 6.3.1 GCC编译器简介 6.3.2 GCC编译流程 6.3.3 GCC常用编译选项 6.3.4库依赖 6.3.1 GCC编译器简介 Linux下最常用的C语言编译器是gcc(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言。gcc不仅功能十分强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada等。Gcc是一个交叉平台编译器,可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比,平均效率要高20%~30%。 gcc编译系统 文件名后缀 GCC编译流程 gcc编译程序时,编译过程可以细分为4个阶段: 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking) C语言编译过程 1.预处理阶段 预处理是常规编译 之前预先进行的工作, 故此得名。它读取C语言 源文件,对其中以“#” 开头的指令(伪指令) 和特殊符号进行处理。 主要包括文件包含、宏 定义和条件编译指令。 2.编译阶段 编译程序(Compiler)对预处理之后的输出文件进行词法分析和语法分析,试图找出所有不符合语法规则的部分 3.汇编过程 汇编过程是汇编程序(Assembler)把汇编语言代码翻译成目标机器代码的过程 4.连接阶段 连接程序(Linker)要解决外部符号访问地址问题 连接模式分为静态连接和动态连接 Gcc指令的一般格式为: Gcc [选项] 要编译的文件 [选项] [目标文件] gcc hello.c -o hello 其中,目标文件可缺省,Gcc默认生成可执行的文件,命名为:编译文件.out。命令行中 gcc表示用gcc来编译源程序,-o 选项表示要求编译器输出的可执行文件名为hello ,而hello.c是源程序文件。 编译过程:结合例子说明 # include stdio.h int main ( ) { printf ("Hello Linux\n"); return 0; } 1.预处理阶段 在该阶段,编译器将上述代码中的stdio.h编译进来,并且用户可以使用Gcc的选项“-E”进行查看,该选项的作用是让Gcc在预处理结束后停止编译过程。 # 1 hello.c # 1 command line # 1 hello.c # 790 /usr/include/stdio.h 3 4 # 829 /usr/include/stdio.h 2 3 4 extern int ftrylockf

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档