vi的使用及gcc编译过程

1 文本编辑工具vi

 vi是Linux/Unix底下最常用的文本编辑器。vim是vi的升级版本,它不仅兼容vi的所有命令,而且还加入了一些新的特性。

1.1 vi的三种工作方式

1.2 编辑方式

光标定位

 M 移动光标到页面中央
 L移动光标到页面尾处
 H移动光标到页面开始处
 Ctrl+f向后翻页
 Ctrl+b向前翻页
 0移动光标到行首
 $移动光标到行尾

复制 粘贴 删除

 nyy 复制光标所在的向下n行内容
 p在光标处粘贴复制的内容
 ndd删除光标所在向下n行的内容

撤销和重复

 u复原前一个动作
 . 重复前一个动作

1.3 插入方式

i和I键插入:在目前光标处输入文字,已存在的文字会向后

  A和a键:a为从目前光标所在的下个字符处开始插入,A为从光标所在行的最后一个字符开始插入
 O和o:在目前光标所在下一行处插入新的一行.O为在目前光标所在处的上一行插入新行
 R和r 取代:r会取代光标所在的那个字符:R会一直取代光标所在的文字,直到按下ESC为止

1.4 命令方式

2 gcc

  gcc是GNU Compiler Collection的缩写。最初是作为C语言的编译器,现在已经支持多种语言了,如C、C++、Java、Pascal、Ada、COBOL语言等。

2.1 gcc编译过程

2.2 gcc常用选项

-o 产生目标代码或可执行文件
-c 通知gcc取消链接步骤,即编译源码并在最后生成目标文件
-E 只运行C预编译器
-S 告诉编译器产生汇编语言文件后停止编译,产生的汇编语言文件扩展名为.s
-Idir 将dir目录加入搜索头文件的目录路径
-Ldir 将dir目录加入搜索库的目录路径
-llib 链接lib库
-g 在目标文件中嵌入调试信息,以便gdb之类的调试程序调试
-Wall 使gcc对源文件的代码有问题的地方发出警告

例如:
gcc -E hello.c -o hello.i(预处理cpp)
gcc -S hello.i -o hello.s(编译cc)
gcc -c hello.s -o hello.o(汇编as)
gcc hello.o -o hello(链接ld)
--》
gcc -c hello.c或gcc -c hello.c -o hello.o(编译生成目标文件)
--》
gcc hello.c -o hello(直接编译链接成可执行文件)

3 gdb

  gdb是GNU debugger的缩写,是编程调试工具

3.1 gdb用法

list(l) 列出源代码
break(b) 设置断点
info break 查看断点信息 info functions
run(r) 运行
continue(c) 继续程序运行,直到下一个断点
step(s) 单步跟踪,类似于VC中的step into
next(n) 单步跟踪,类似于VC中的step over
finish 运行程序,直到当前函数返回
util(u) 退出循环
print(p) 查看运行时的变量以及表达式
watch 设置观察点
进入调试模式:gdb 执行文件 (在gcc的时候要记得 -g)

转载于:https://blog.51cto.com/13097817/2046738

你可能感兴趣的:(vi的使用及gcc编译过程)