前面的 part1 讲了一个流程,这篇补上一些编译器相关细节,其实我个人认为,根本上能唐塞自己当时的项目就行了,一些详细的参数不必立刻花时刻去背。以后用多了天然记住,可能是我记忆比较差的原因~~
Vi:
Vi 有3 种形式,分别为指令行形式、刺进形式及指令行形式各形式的功用,
下面详细进行介绍。
(1)指令行形式
用户在用Vi 修正文件时,开端进入的为一般形式。在该形式中能够经过上下移动光标进行“删去字符”或“整行删去”等操作,也能够进行“仿制”、“张贴”等操作,但无法修正文字。
(2)刺进形式
只需在该形式下,用户才干进行文字修正输入,用户课按[ESC]键回到指令行形式。(在指令行形式按下 i 键进入,留意左下脚的改变)
(3)底行形式
在该形式下,光标坐落屏幕的底行。用户能够进行文件保存或退出操作,也能够设置修正环境,如寻觅字符串、列出行号等。
vi 指令行形式功用键
目 录 目 录 内 容
I 切换到刺进形式,此刻光标当于开端输入文件处
A 切换到刺进形式,并从现在光标所在方位的下一个方位开端输入文字
O 切换到刺进形式,且从行首开端刺进新的一行
[ctrl]+[b] 屏幕往“后”翻动一页
[ctrl]+[f] 屏幕往“前”翻动一页
[ctrl]+[u] 屏幕往“后”翻动半页
[ctrl]+[d] 屏幕往“前”翻动半页
0(数字0) 光标移到本行的最初
G 光标移动到文章的最终
nG 光标移动到第n行
$ 移动到光标所内行的“行尾”
n
/name 在光标之后查找一个名为name的字符串
?name 在光标之前查找一个名为name的字符串
X 删去光标所在方位的“后边”一个字符
dd 删去光标所内行
ndd 从光标所内行开端向下删去n行
yy 仿制光标所内行
nyy 仿制光标所内行开端的向下n行
p 将缓冲区内的字符张贴到光标所在方位(与yy调配)
U 康复前一个动作
Vi底行形式功用键
目 录 目 录 内 容
:w 将修正的文件保存到磁盘中
:q 退出Vi(体系对做过修正的文件会给出提示)
:q! 强制退出Vi(对修正过的文件不作保存)
:wq 存盘后退出
:w [filename] 另存一个命为filename的文件
:set nu 显现行号,设定之后,会在每一行的前面显现对应行号
:set nonu 撤销行号显现
贴了这么多,我供认他很强壮,可是有些用得少的仍是很难记住,轻视我吧别的还有一个Emacs,坦白说我没用过~~~时刻联系暂时也不去研讨了
GCC:
Gcc编译流程解析
如本章最初说到的,Gcc的编译流程分为了4个过程,分别为:
· 预处理(Pre-Processing);
· 编译(Compiling);
· 汇编(Assembling);
· 链接(Linking)。
|
hello.c
#include
int main()
{
printf(Hello!\n);
return 0;
}
*弥补一个小问题,为什么 main 函数前面要用 int ,用 void 在 dev-c++ 会得到一个warning ,很古怪,知道的说下。当然,这是windows 上面的事,忽然想到的罢了。
500)this.width=500; border=0>
翻开 hello.i 能够看到GCC 的预处理,后边类同,翻开新生成的东西剖析下就OK了。很抱愧,打印输出的时分忘掉加个 \n
*linux 不管指令仍是参数仍是文件名都区别大小写!如上面的 -E 写成 -e就报文件找不到
*文件名的输入,没必要一个字一个字打,例如里边的hello.c ,只需打h按TAB制表符就会输入,快多了,爽啊,其他linux 下有关文件名目录的操作等都有此快速输入法,书上居然没说,抑郁,害我之前浪费了N 多时刻在打字
*上面是分化过程,其实实际操作中我直接就 gcc hello.c -o hello这种做法好吗?不知道,我觉得挺便利的,如果有什么危险,请奉告
GDB
只写几个根本的指令唐塞下,由于这个的介绍要结合比如才说得清~~~
(1)检查文件
在Gdb 中键入“l”(list)就能够检查所载入的文件
(2)设置断点
设置断点是调试程序中是一个非常重要的手法,它能够使程序到必定方位暂停它的运转。因而,程序员在该方位处能够便利地检查变量的值、仓库状况等,然后找出代码的症结所在。