Linux基础教程(第3版) 教学课件 ppt 作者 Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21

上传人:E**** 文档编号:89357038 上传时间:2019-05-23 格式:PPT 页数:20 大小:135.50KB
返回 下载 相关 举报
Linux基础教程(第3版) 教学课件 ppt 作者  Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21_第1页
第1页 / 共20页
Linux基础教程(第3版) 教学课件 ppt 作者  Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21_第2页
第2页 / 共20页
Linux基础教程(第3版) 教学课件 ppt 作者  Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21_第3页
第3页 / 共20页
Linux基础教程(第3版) 教学课件 ppt 作者  Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21_第4页
第4页 / 共20页
Linux基础教程(第3版) 教学课件 ppt 作者  Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Linux基础教程(第3版) 教学课件 ppt 作者 Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21》由会员分享,可在线阅读,更多相关《Linux基础教程(第3版) 教学课件 ppt 作者 Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter21(20页珍藏版)》请在金锄头文库上搜索。

1、21-1,第21章 Linux基本编程,21-2,主要内容,了解什么是GNU计划及其意义 熟悉各种GNU计划实用程序 熟悉gcc编译器的用法和执行过程 了解多文件项目 熟悉makefile的结构 熟悉gdb调试程序,21-3,21.1 GNU计划的实用程序,GNU (它代表“GNU is not UNIX”)是由Richard stallman开发的一个与UNIX兼容的软件系统。大多数Linux软件是经过自由软件基金会(Free Software Foundation)的GNU(www.gnu.org)公开认证授权的,因而通常称为GNU软件。许多流行的Linux实用程序如C编译器、shell和

2、编辑器都是GNU软件应用程序。 GNU计划包括上百个命令、工具和工具的集合以及文档。如果没有它们,Red Hat Linux不会像现在这样有这么丰富的内容。,21-4,21.2 编程环境,各种编程语言或shell程序脚本的源代码文件可以用任何一种文本编辑器来打开和编辑。 在Linux开发程序一般来说有两个主要的编辑器 vi/vim Emacs,21-5,21.3 gcc的介绍,gcc简介 Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。 gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编

3、译器相比平均效率要高20%30%。,21-6,gcc的执行过程 虽然我们称gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤 预处理(也称预编译,Preprocessing) 编译(Compilation) 汇编(Assembly) 连接(Linking)。,21-7,gcc的基本用法和选项 在使用gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。 gcc的错误类型及对策 gcc编译器如果发现源程序中有错误,就无法继续进行,也无法生成最终的可执行文件。 C语法错误 头文件错误 档案库错误 未定义符号,21-8

4、,21.4 GNU make 介绍,make是所有想在Unix /Linux系统上编程的用户必须掌握的工具。如果你写的程序中没有用到 make ,则说明你写的程序只是个人的练习程序,不具有任何实用的价值。也许这么说有点偏激,但make实在是应该用在任何稍具规模的程序中的。,21-9,多文件项目 为什么要使用多文件项目 何时分解项目 怎样分解项目,21-10,GNU make工具 如果,用户有在其他软件平台上开发软件的经验,那么这些程序对于用户来讲是很好学的。 使用make来编译程序 基本 Makefile 结构 编写 make 规则 Makefile变量,21-11,21.5 调试工具:gdb

5、,启动gdb 首先重新编译程序,然后启动gdb。 $cc g o debug2 debug2.c $gdb debug2,21-12,gdb的功能 堆栈跟踪 监视你程序中变量的值; 设置断点以使程序在指定的代码行上停止执行; 一行行的执行代码。,21-13,gdb基本命令 gdb 支持很多的命令使你能实现不同的功能。这些命令从简单的文件装入到允许你检查所调用的堆栈内容的复杂命令。,21-14,基本 gdb 命令,21-15,21.6 Linux C程序的框架,关于程序的存放目录 所有用户皆可使用的系统程序存放在/bin中 超级用户才能使用的系统程序放在/sbin中 所有用户皆可使用的应用程序存

6、放在/usr/bin中 超级用户才能使用的应用程序存放在/usr/sbin中 所有用户皆可使用的与本地机器有关的程序存放在/usr/local/bin中 超级用户才能使用的与本地机器有关的程序存放在/usr/local/sbin中 与X Window有关的程序存放在/usr/X11R6/bin中,21-16,头文件 在C和很多计算机语言中,我们需要利用头文件来定义结构、常量以及声明函数的原型。几乎所有C的头文件都放在/usr/include及其子目录下; 函数库 函数库是以重复利用为目的,经过编译的函数集合。一般来说总是围绕某一功能来开发函数库的,比如大家熟知的stdio(STandarD I

7、nput Output)库就是输入、输出函数的集合,dbm则是数据库函数的集合。 标准的系统函数库都放在/lib和/usr/lib两个目录下,C编译器(确切地说是在连接的时候)需要这些函数库。,21-17,静态函数库 这是最简单的函数库形式,链接后可执行文件在没有此函数库的情况下可以照常运行。 静态函数库一般也叫做档案(archives),所以静态函数库以.a结尾 比如/usr/lib/libc.a是标准的C函数库,而/usr/X11/libX11.a是X窗口函数库。,21-18,共享函数库 静态函数库的缺点:当我们同时运行很多使用同一函数库中的函数的程序的时候,我们必须为每一个程序都复制一份

8、一样的函数,这样占用了大量的内存和磁盘空间。 共享函数库克服了这一缺点。如果某个函数使用共享函数库比如libc.so.N,那么此程序被链接到/usr/lib/libc.sa,这是一个特殊类型的函数库,它并不包含实际的函数,只是指向libc.so.N中的相应函数,并且只有在运行状态条用此函数时才将其调入内存。 在Linux下可以用ldd命令查询某个程序使用了哪些动态库。,21-19,21.7 创建、编译和执行第一个程序,创建一个简单的C程序 建立大型的应用程序,21-20,小结&习题,思考题 (1) 什么是GNU计划? (2) 什么是gcc?试述它的执行过程? (3) 为什么要使用多文件项目? 上机题 (1) 试写简单c程序,输出“hello”,在Linux下用gcc进行编译。 (2) 写一个make脚本程序,然后使用make命令编译工程。 (3) 试将上述程序编译为共享库,然后部署到用户库目录中。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号