VIM编辑器与GCC编译器_第1页
VIM编辑器与GCC编译器_第2页
VIM编辑器与GCC编译器_第3页
VIM编辑器与GCC编译器_第4页
VIM编辑器与GCC编译器_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、linux操作系统华软软件学院电子系华软软件学院电子系P1教学内容教学内容Vim编辑器编辑器Gcc编译器与编译器与gdb调试器调试器Makefile的编写的编写linux操作系统华软软件学院电子系华软软件学院电子系P2教学要求教学要求掌握掌握vim编辑器的常用命令,能够熟练使用编辑器的常用命令,能够熟练使用vim编辑器编写编辑器编写C语言程序语言程序掌握掌握gcc编译器及编译器及gdb调试器的使用,能够调试器的使用,能够编写简单的编写简单的makefile文件文件重点:重点:vim的常用命令、的常用命令、makefile的编写的编写linux操作系统华软软件学院电子系华软软件学院电子系P33第

2、二节VimVim编辑器编辑器linux操作系统华软软件学院电子系华软软件学院电子系P4VIM编辑器编辑器vi简介简介Linux系统的第一个全屏幕编辑器不是一个排版程序,只是一个文本编辑程序没有菜单、只有相当丰富的命令Vi有三种工作模式:命令行模式、文本输入模式、末行模式Linux下有很多编辑器,最典型的是gedit和vimgedit是界面操作,跟Windows上的编辑器差不多vi则是命令交互的编辑器linux操作系统华软软件学院电子系华软软件学院电子系P5VIM编辑器编辑器任何时候,只要按一下ESC键,即可进入vi命令行模式在shell环境下输入启动vi命令,进入编辑器时,也是该模式注意:此时

3、输入的字符都被当做编辑命令来解释并且输入的命令并不在屏幕上显示出来命令行模式linux操作系统华软软件学院电子系华软软件学院电子系P6VIM编辑器编辑器命令行模式下输入如下命令可以进入文本输入模式l 插入命令i、Il 附加命令a、Al 打开命令o、Ol 修改命令c(cw、cc、c$)l 取代命令r、R此时用户输入的任何字符都被vi当做文本内容保存起来文本输入模式linux操作系统华软软件学院电子系华软软件学院电子系P7VIM编辑器编辑器在命令行模式下,用户按“:”键可进入末行模式此时vi会在现实窗口的最后一行显示一个“:”作为提示符,等待输入命令大部分管理命令就是在这里输入的末行命令执行完后,

4、vi自动回到命令模式末行模式三种模式切换方法如图:三种模式切换方法如图:linux操作系统华软软件学院电子系华软软件学院电子系P8VIM编辑器编辑器vi编辑器启动编辑器启动使用vi进行编辑第一步是进入编辑界面,一般方法为:$ vi filename请尝试创建新文件并编辑一段简单的C程序linux操作系统华软软件学院电子系华软软件学院电子系P9VIM编辑器编辑器显示显示vi中的行号中的行号当编辑的文件较大时,人工确认行号不方便需通过vi的命令确认行号,在末行模式中输入:set nu同样,如果想取消显示行号,则在末行模式中输入:set number或:set nonu:set nonumber或l

5、inux操作系统华软软件学院电子系华软软件学院电子系P10VIM编辑器编辑器光标移动操作光标移动操作在vi操作中,不建议使用上下左右四个箭头移动光标,而是:l h 左移 j 下移 k 上移 l 右移l 这几个字符跟数字键组合,可以移动多个位置,比如l 3j 光标下移3行 5h 光标左移3格l H 移至屏幕上端 L 移至屏幕下端 M 移至屏幕中央l gg 到第一行 G 到最后一行l nG 到第n行l : n 到第n行linux操作系统华软软件学院电子系华软软件学院电子系P11VIM编辑器编辑器移动光标还有如下几个常用命令l 或数字0:光标移动到行首l $:光标移动到行尾l w:光标跳转到下一个字

6、首,按标点或单词分割l W:光标跳转到下一个字首,长跳,比如end-of-line是一个字l e:光标跳转到下一个字尾l E:光标跳转到下一个字尾,长跳l b:光标跳转到上一个字,按标点或单词分割l B:光标跳转到上一个字,长跳linux操作系统华软软件学院电子系华软软件学院电子系P12VIM编辑器编辑器屏幕命令屏幕命令屏幕命令是以屏幕为单位去移动光标,常用于文件的滚屏和分页l Ctrl+U:将屏幕向前(文件头方向)翻滚半屏l Ctrl+D:将屏幕向后(文件尾方向)翻滚半屏l Ctrl+F:将屏幕向后(文件尾方向)翻滚一屏l Ctrl+B:将屏幕向前(文件头方向)翻滚一屏linux操作系统华软

7、软件学院电子系华软软件学院电子系P13VIM编辑器编辑器文本插入命令文本插入命令l i:插入文本从光标所在位置前开始l I:将光标移动到当前行的行首,然后在其前插入文本文本附加命令文本附加命令l a:在光标当前位置之后追加新文本l A:将光标移动到所在行的行尾,从那里开始插入新文本文本修改命令文本修改命令l o:在光标的下面新开一行,并定位到该行的行首,等待输入l O:在光标的上面插入一行,并定位到该行的行首,等待输入linux操作系统华软软件学院电子系华软软件学院电子系P14VIM编辑器编辑器文本修改命令文本修改命令删除删除删除单个字符l x:删除光标处的字符l nx:删除光标所在位置开始向

8、右的n个字符(n是具体的数字)l X:删除光标前面的那个字符l nX:删除光标前面向左的n个字符(n是具体的数字)linux操作系统华软软件学院电子系华软软件学院电子系P15VIM编辑器编辑器删除多个字符l dd:删除光标所在当前行l D或d$:删除从光标所在处开始到行尾的内容l d:删除从光标前一个字符开始到行首的内容l dw:删除一个单词l dG:删除光标所在行到末尾所有内容l :n1,n2d 删除n1到n2行linux操作系统华软软件学院电子系华软软件学院电子系P16VIM编辑器编辑器复制和剪切命令l yy、Y 复制当前行l nyy、nY 复制当前行以下n行l dd 剪切当前行l ndd

9、 剪切当前行以下n行l p、P粘贴在光标所在行下或行上替换和重复命令l r 取代光标所在处字符l R 从光标所在处开始替换字符,直到按ESC结束l . 重复上一次命令操作linux操作系统华软软件学院电子系华软软件学院电子系P17VIM编辑器编辑器搜索和替换l /string 搜索指定字符串stringl :set ic 搜索时忽略大小写;:set noic区分大小写l n 下一个搜索到的位置;N上一个搜索到的位置l :%s/old/new/g 全文替换,将old替换为new,g不需确认l :n1,n2s/old/new/c 指定行替换,c需要确认linux操作系统华软软件学院电子系华软软件学

10、院电子系P18VIM编辑器编辑器文本修改命令文本修改命令取消取消取消上一个命令,也称复原命令可以取消前一次的误操作或不合适的操作对文件的影响l u:取消刚才的操作,可取消多次,直到最初状态l U:取消刚才的操作,只取消前一步操作文本修改命令文本修改命令恢复恢复恢复刚刚取消的命令可以把刚通过u命令取消的操作,重新输入l Ctrl + r:恢复刚才取消的内容linux操作系统华软软件学院电子系华软软件学院电子系P19VIM编辑器编辑器退出退出vi编辑完文件后,准备退出vi返回shell时,可以在末行模式下,使用如下方法:l :w newfile 保存文件为newfile,但并不退出l :q 退出v

11、i。如果未保存,vi将提示不能退出l :wq newfile 保存并退出l :q! 强制退出,不保存l :x 如果修改过,则保存退出;如果未修改过,则直接退出l ZZ 快捷键,保存修改并退出linux操作系统华软软件学院电子系华软软件学院电子系P20VIM编辑器编辑器设置设置vi可以通过/.vimrc文件对vi进行默认的设置也可在末行模式中设置l set nu:显示行号l syntax on:语法高亮(编程时适用)l set undolevels=200:undo最大次数l set ignorecase:忽略大小写l set autoindent:自动缩进(编程时适用)l set tabsto

12、p=4:设置tab键的宽度linux操作系统华软软件学院电子系华软软件学院电子系P21VIM编辑器编辑器多窗口、多文件多窗口、多文件n命令模式下输入n:e file可以再打开一个文件,并且此时vim里会显示出file文件的内容。n同时显示多个文件:u:sp /水平切分窗口u:vsplit /垂直切分窗口n文件间切换uCtrl+6 /两文件间的切换n窗口间切换的方法uCtrl+w+方向键切换到前下上后一个窗格uCtrl+w+h/j/k/l 同上uCtrl+ww依次向后切换到下一个窗格中linux操作系统华软软件学院电子系华软软件学院电子系P22GCC编译器编译器介绍介绍gccgcc是gnu推出的

13、功能强大、性能优越的多平台编译器可以在多种平台上编译出可执行程序的编译器集合gcc的编译流程分为4个步骤,如下linux操作系统华软软件学院电子系华软软件学院电子系P23GCC编译器编译器该阶段,编译器会将代码中的stdio.h编译出来用户可以使用gcc的选项“-E”进行查看预编译步骤$ gcc -E hello.c -o hello.i留意生成的hello.i文件预编译的过程,其实是把stdio.h的内容插入hello.i文件中linux操作系统华软软件学院电子系华软软件学院电子系P24GCC编译器编译器该阶段,编译器会将C代码转化为汇编代码使用gcc的-S选项进行查看编译步骤$ gcc -

14、S hello.i -o hello.s留意生成的hello.s文件linux操作系统华软软件学院电子系华软软件学院电子系P25GCC编译器编译器该阶段,编译器会将汇编代码转化成目标文件使用gcc的-c选项进行汇编步骤$ gcc -c hello.s -o hello.o链接步骤$ gcc hello.o -o hello该阶段,编译器会将目标文件和函数库进行链接最终生成可执行的二进制文件执行步骤$ chmod 755 hello$ ./hellolinux操作系统华软软件学院电子系华软软件学院电子系P26GCC编译器编译器gcc基本用法和常用选项基本用法和常用选项gcc命令的基本用法如下:$

15、 gcc options filename前面介绍的4个步骤,我们可以一次全部执行,如下:$ gcc hello.c -o hello当没有指定-o选项时,默认生成的可执行文件为a.out$ gcc hello.c$ ./a.outlinux操作系统华软软件学院电子系华软软件学院电子系P27GCC编译器编译器gcc命令的的常用参数如下:l -c:只激活预处理、编译、汇编,只编译成obj文件,不链接l -S:只激活预处理、编译,把文件编译成汇编代码l -E:只激活预处理,不生成文件,不编译l -o:指定目标名称,当不指定时则默认为a.outl -i file:包含某个代码,功能相当于在代码中使用

16、#includel -I dir:首先在指定目录查找#include指定的文件l -l library:指定编译时使用的库l -L dir:指定编译时搜索库的路径l -O0、-O1、-O2、-O3:编译器的优化选项的4个级:0没有优化、1是默认、3是最高l -g:指定编译器在编译时产生调试信息(参考gdb一节)l -Wall:显示附加的警告消息linux操作系统华软软件学院电子系华软软件学院电子系P2828第二节gdbgdb调试器调试器linux操作系统华软软件学院电子系华软软件学院电子系P29GDB调试器调试器gdb简介简介gdb能在程序运行时,观察程序的内部结构和内存堆栈情况gdb主要功能

17、如下:l 监视程序中变量的值l 设置程序断点l 逐行执行代码linux操作系统华软软件学院电子系华软软件学院电子系P30GDB调试器调试器gdb调试时常用的命令如下:命令命令说明说明file装入想要调试的可执行文件装入想要调试的可执行文件kill终止正在调试的程序终止正在调试的程序list列出产生执行文件的源码的一部分列出产生执行文件的源码的一部分next执行一行源代码但不进入函数内部执行一行源代码但不进入函数内部step执行一行源代码并且进入函数内部执行一行源代码并且进入函数内部run执行当前被调试的程序执行当前被调试的程序quit终止终止gdbwatch监视一个变量的值而不管它何时被改变监

18、视一个变量的值而不管它何时被改变break在代码中设置断点,使程序执行到这里时被挂起在代码中设置断点,使程序执行到这里时被挂起make不退出不退出gdb情况下,可以重新产生可执行文件情况下,可以重新产生可执行文件shell不离开不离开gdb,执行,执行UNIX shell命令命令linux操作系统华软软件学院电子系华软软件学院电子系P3131第三节MakefileMakefilelinux操作系统华软软件学院电子系华软软件学院电子系P32MakefileMakefile文件文件利用make工具,可以将大型项目分解成多个更容易管理的模块方便管理人员梳理各个源文件之间复杂的关系一个make命令,可

19、以编译不同目录下的多个源文件make工具最主要最基本的功能是通过makefile文件来描述源程序之间的相互关系,并自动维护编译工作如果一个目录下没有Makefile文件,输入make命令,系统报错linux操作系统华软软件学院电子系华软软件学院电子系P33MakefileLinux系统中,习惯使用Makefile文件名编译是输入make命令即可$ make f Makefile.debug如果要使用其他文件(一般不建议),则需要通过-f选项指定$ makelinux操作系统华软软件学院电子系华软软件学院电子系P34Makefile假设一个工程中包含filea.c、fileb.c、test.c三

20、个文件如果用gcc编译这个工程,需要$ make现在我们使用Makefile对这个工程进行管理,则建立Makefile文件$ gcc -c filea.c o filea.o$ gcc -c fileb.c o fileb.o$ gcc -c test.c o test.o$ gcc filea.o fileb.o test.o o prog然后输入命令Makefile将自动帮我们进行编译linux操作系统华软软件学院电子系华软软件学院电子系P35Makefile现在我们简单分析一下这个Makefile文件指定prog程序由3个目标文件filea.o、fileb.o、test.o链接生成prog: filea.o fileb.o test.ogcc filea.o fileb.o test.o -o progfilea.o: filea.cgcc -c filea.c指定目标文件

温馨提示

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

评论

0/150

提交评论