版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届吉林省榆树市四上数学期末教学质量检测试题含解析
- 2027届四川省阿坝藏族羌族自治州壤塘县三上数学期末质量跟踪监视试题含解析
- 2026高中秋季开学滑坡泥石流灾害预警识别科普
- 变配电运行值班员(8)理论考试测试卷及答案
- 2027届苏州市相城区数学四年级第一学期期末综合测试试题含解析
- 2027年山东省高职综合评价招生 职业认知能力模拟检测卷
- 2026中国文化传媒领域深层剖析及行业前景和投资机会深度研究报告
- 2026融资租赁行业市场发展潜力商业模式竞争分析研究发展蓝皮书
- 2026生物医药行业技术与市场结合趋势研判与产业升级探讨及资本进入途径分析报告
- 2026葡萄牙交通运输规划及高效的能源利用和商业前景分析
- 2025年茂名港集团有限公司招聘笔试真题
- 2026安徽师范大学专职辅导员招聘3人(第二批)笔试参考题库及答案详解
- 2026年车险查勘定损人员上岗考核试卷及答案
- 成都教科附属2026初一入学语文分班考试真题含答案
- 2026-2027北师大版七(上)数学第一章 丰富的图形世界 单元测试卷
- 2026中煤华利新疆炭素科技有限公司招聘16人笔试历年典型考点题库附带答案详解
- 中国骨科大手术vte预防指南(2025版)
- 肺癌病人营养支持护理
- 2026年江苏省安全员C1证(机械类)考试真题(含答案解析)
- 2025方便速食行业线上消费趋势洞察
- 小绞车司机安全操作注意事项
评论
0/150
提交评论