- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数库一般分为静态库和动态库两种。静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”。动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,如前面所述的libc.so.6就是动态库。gcc在编译时默认使用动态库。 嵌入式Linux操作系统第3章 嵌入式Linux编程环境 第1章 嵌入式Linux操作系统简介 第2章 Linux操作系统使用与系统配置 第3章 嵌入式Linux编程环境 第4章 存储管理 第5章 操作系统进程 第6章 进程间通信 第7章 中断与系统调用 第8章 文件管理 第9章 设备管理 第10章 嵌入式Linux的构建 课程安排: * 第3章 嵌入式Linux编程环境 3.1 Linux编辑器vi的使用 3.2 gcc编译器 3.3 gdb调试器 3.4 Make工程管理器 3.5 使用autotools 思考题 本章课程: * 3.1 Linux编辑器vi的使用 Linux编辑器 行编辑器(ed、ex) 行编辑器每次只能对单行进行操作,使用起来很不方便 全屏幕编辑器(vi、emacs) 全屏幕编辑器可以对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上 vi是Linux系统的第一个全屏幕交互式编辑程序 * 3.1 Linux编辑器vi的使用 3.1.1 vi的模式 vi有3种模式:命令行模式、插入模式、底行模式 (1)命令行模式 用户在用vi编辑文件时,最初进入的为一般模式。在该模式中可以通过上下移动光标进行“删除字符”或“整行删除”等操作,也可以进行“复制”、“粘贴”等操作,但无法编辑文字。 (2)插入模式 只有在该模式下,用户才能进行文字编辑输入,用户课按[ESC]键回到命令行模式。 (3)底行模式 在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号等。 * 3.1 Linux编辑器vi的使用 3.1.2 vi的基本流程 (1)进入vi,即在命令行下键入vi hello(文件名)。此时进入的是命令行模式,光标位于屏幕的上方,如图3.1所示。 (2)在命令行模式下键入i进入到插入模式,如图3.2所示。可以看出,在屏幕底部显示有“插入”表示插入模式,在该模式下可以输入文字信息。 (3)最后,在插入模式中,输入“Esc”,则当前模式转入命令行模式,并在底行行中输入“:wq”(存盘退出)进入底行模式,如图3.3所示。 这样,就完成了一个简单的vi操作流程:命令行模式→插入模式→底行模式。 * 3.1 Linux编辑器vi的使用 3.1.3 vi的各模式功能键 (1)命令行模式常见功能键如表: (2)插入模式的功能键只有一个, 也就是Esc退出到命令行模式。 (3)底行模式常见功能键如表所示: * 3.2 gcc编译器 GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多种语言,而且gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。本章中的示例,除非特别注明,否则均采用gcc版本为4.0.0。 下表3.3是gcc支持编译源文件的后缀及其解释。 * 3.2 gcc编译器 3.2.1 gcc编译流程解析 gcc的编译流程分为了4个步骤,分别为: ? 预处理(Pre-Processing); 编译器将上述代码中的stdio.h编译进来,并且用户可以使用gcc的选项“-E”进行查看,该选项的作用是让gcc在预处理结束后停止编译过程。 ? 编译(Compiling); gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。 ? 汇编(Assembling); 汇编阶段是把编译阶段生成的“.s”文件转成目标文件,读者在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了。 ? 链接(Linking)。 系统把这些函数(printf)实现都被做到名为libc.so.6的库文件中去了,在没有特别指定时,gcc会到系统默认的搜索路径“/usr/lib”下进行查找,也就是
文档评论(0)