vim的三种模式(其实有好多模式 )
(1).命令模式
(2).插入模式
(3).底行模式
vim的基本操作
vim的命令模式的基本操作
vim的插入模式的基本操作
vim的底行模式的基本操作
vim的配置
gcc和g++相关操作
(1).使用gcc/g++进行预处理操作
注:预处理功能主要包括宏定义(将宏进行替换),文件包含(将代码中包含了的头文件全部加载进去),条件编译(如果SHOW宏定义了,输出hello world,否则输出hello world),去注释等。
预处理指令是以#号开头的代码行。
实例: gcc –E hello.c –o hello.i
选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。
(库头文件的展开,将上述链接中的文件全部复制到当前文件里面)
头文件里面是函数的申明,主要是支持代码自动补齐
(2).使用gcc/g++进行编译操作(将c语言编程汇编语言)
注:在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工 作,在检查无误后,gcc 把代码翻译成汇编语言。
用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。
实例: gcc –S hello.i –o hello.s
其中:movl,pushq,call,popq等为助记符;%代表寄存器,$代表地址
(3).使用gcc/g++进行汇编操作(将汇编语言变成二进制可重定位目标文件)
注:汇编阶段是把编译阶段生成的“.s”文件转成目标文件
读者在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了
实例: gcc –c hello.s –o hello.o
text.o文件
在执行od text.o以二进制方式打开。
(4).使用gcc/g++进行链接操作(将我写的代码与标准库的代码合起来,就叫链接)
注:在成功编译之后,就进入了链接阶段(形成可执行程序,可执行的二进制程序=库+我的代码)。
实例: gcc hello.o –o hello
(5).快捷记忆:E S c形成的文件为i s o
动态链接和静态链接
(1).库的认识
C++标准库/C标准库
链接的本质:我们在调用库函数时,与标准库是怎样进行关联的。
(2).动态链接库: 编译链接时,不把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。
(3).静态链接库:编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”