VI三种模式的切换
命令模式、文本输入模式、和末行模式
GCC编译过程
整个过程中可以划分为以下的4步流程:
(1)预处理/预编译: 主要对.c预处理,包含头文件的扩展,以及执行宏替换等,得到预处理文件 .i
(2)编译:主要用于将预处理文件高级语言程序翻译成汇编语言,得到汇编文件.s
(3)汇编:主要用于将汇编语言翻译成机器指令,得到二进制目标文件.o
(4)链接:主要用于将目标文件和标准库链接,得到可执行文件
预处理
Include<> ” ”
#define #if…#elif #ifdef…#endif #ifndef
error #warning
#pragma带参数的预定义处理 #pragma pack(push) #pragme pack(1) #pragma pack(pop)
#define SENCONDS_PER_YEAR 606024*365UL
#define PI 3.1415926F
对于#include <filename.h> ,编译器从标准库路径开始搜索 filename.h
对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
应用举例
(1)编译
gcc a.c
编译成功后,当前目录下就产生了一个a.out文件。
也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。例如:
gcc –o greet a.c
此时得到的可执行文件就不再是a.out,而是greet。
3.调试文件
上边编译出错
gdb greet ,出现提示符
(gdb)
此时可在提示符下输入gdb的命令了,如:
(gdb) run
(gdb) list
(4)退出调试状态,返回系统提示符下,(gdb)quit
2.执行文件
格式: /可执行文件名
例: ./a.out
./greet
GDB
• 监视程序中变量的值;
• 设置断点以使程序在指定的代码行上停止执行;
• 一行行的执行代码。
Makefile
在实际的项目中,由于 make规则的复杂性和不确定性,自己编写Makefile是一件费时费力的事情。Makefile本身具有一定的相似性,因此利用GNU autoconf及automake这两套工具可以协助我们自动产生 Makefile文件,并且让开发出来的软件可以像大多数源 代码包那样,只需运行命令"./configure"、 “make”、 "make install"就可以把程序安装到系 统中,对于各种源代码包的分发和兼容性具有很好的效果。