6.Linux编程工具(一).ppt_第1页
6.Linux编程工具(一).ppt_第2页
6.Linux编程工具(一).ppt_第3页
6.Linux编程工具(一).ppt_第4页
6.Linux编程工具(一).ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章Linux编程工具(一),本章目标,VI工具使用 Gcc 编译过程 Gdb调试程序方法 Linux库文件和头文件 Linux共享库使用,文本编辑工具vi,什么vi :vi是Linux/Unix底下最常用的文本编辑器。 vim:vim是vi的升级版本,它不仅兼容vi的所有命令,而且还加入了一些新的特性。,vi的三种工作方式,编辑方式,光标定位 M 移动光标到页面中央 L移动光标到页面尾处 H移动光标到页面开始处 Ctrl+f向后翻页 Ctrl+b向前翻页 0移动光标到行首 $移动光标到行尾 复制 粘贴 删除 nyy 复制光标所在的向下n行内容 p在光标处粘贴复制的内容 ndd删除光标所在向

2、下n行的内容 撤销和重复 u复原前一个动作 . 重复前一个动作,插入方式,i和I键插入:在目前光标处输入文字,已存在的文字会向后 A和a键:a为从目前光标所在的下个字符处开始插入,A为从光标所在行的最后一个字符开始插入 O和o:在目前光标所在下一行处插入新的一行.O为在目前光标所在处的上一行插入新行 R和r 取代:r会取代光标所在的那个字符:R会一直取代光标所在的文字,直到按下ESC为止,命令方式,退出命令 q 退出vi q! 不保存退出 wq! 保存退出 搜索字符串 输入/+要查找的字符串 按n键重新查找下一个 shell切换 !+shell命令 如 !ls l 在vi中使用ls命令 Sp

3、+filename 在同一个vi中编辑两个文件,gcc,什么是gcc:gcc是GNU Compiler Collection的缩写。最初是作为C语言的编译器,现在已经支持多种语言了,如C、C+、Java、Pascal、Ada、COBOL语言等。 gcc支持多种硬件平台,甚至对Don Knuth 设计的 MMIX 这类不常见的计算机都提供了完善的支持,gcc编译程序的过程,预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking),gcc编译程序过程示意图,gcc常用选项,gcc示例,gcc -E hello.c -o hello.i

4、(预处理cpp) gcc -S hello.i -o hello.s(编译cc) gcc -c hello.s -o hello.o(汇编as) gcc hello.o -o hello(链接ld) gcc hello.c -o hello(直接编译链接成可执行文件) gcc -c hello.c或gcc -c hello.c -o hello.o(编译生成目标文件),头文件与库文件,在使用C语言和其他语言进行程序设计的时候,我们需要头文件来提供对常数的定义和对系统及库函数调用的声明。 库文件是一些预先编译好的函数集合,那些函数都是按照可重用原则编写的。它们通常由一组互相关联的用来完成某项常见

5、工作的函数构成。比如用来处理屏幕显示情况的函数(curses库)和数据库访问例程(dbm库)等。,头文件与库文件位置,/usr/include及其子目录底下的include文件夹 /usr/local/include及其子目录底下的include文件夹 /usr/lib /usr/local/lib,静态库与共享库,静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。 共享库( .so或.sa ):程序在运行的时候才去链接共享库的代码,多个程序共享使用库的代码。,生成和使用共享库,生成共享库 编译选项 shared: 表示生成共享库格式 fpic:产生位置无关码(position

6、 independent code) 库名规则:lib+xxx+版本号.so 示例:gcc shared fpic test.o o libTest.so 使用共享库 编译选项 l:链接共享库,只要库名即可(去掉lib以及版本号) L:链接库所在的路径. 示例: gcc o test L./ -lTest,运行共享库设置,1、拷贝.so文件到系统共享库路径下 一般指/usr/lib 2、ldconfig ld.so.conf ldconfig 更新ld.so.cache 3、更改LD_LIBRARY_PATH,gdb,什么是gdb:gdb是GNU debugger的缩写,是编程调试工具。,gd

7、b功能,启动程序,可以按照用户自定义的要求随心所欲的运行程序。 可让被调试的程序在用户所指定的调试的断点处停住 (断点可以是条件表达式)。 当程序停住时,可以检查此时程序中所发生的事。 动态地改变程序的执行环境。,gdb用法,设置断点,break info break 查看断点 br linenum 设置某行断点 br functions 设置某个函数断点 br if 条件 根据条件设置断点,多文件调试,设置断点 br 文件名:行数 br 文件名:函数功能名 在多级目录情况下,要为gdb加入搜索路径 directory 路径名,注意:被调试的源文件,在编译时必须都加-g调试选项,core-dump调试,1、core-dump文件 在程序当掉时出错,可以将内存信息导入到core文件,这个过程就是linux core-dump 2、设置生成core-dump文件 1)ulimit c 查看core-dump状态 在.bash_profile加入“ ulimit c unlimited” 3、gdb利用core-dump文件调试 1) gdb 文件名 core-d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论