2016年1月23日17:53:52
VI三种工作模式:
命令行模式:打开文件的默认模式;
插入模式:插入文字。
底行模式:按‘:’退出保存等。
GCC:GNU Compiler Collection
GPL:GNU通用公共许可证(GNU General Public License,GPL)
编译过程可以分为:
预处理:Pre-Processing -E gcc -E test.c -o test.i
编译:Compiling -S gcc -S test.i -o test.S
汇编:Assembling -c 任务是把汇编程序翻译成CPU可以识别的二进制文件,该文件成为目标文件 gcc -c test.c -o test.o
链接:Linking 任务是把所有的目标文件和所需要的库文件都链接在一起,最终生成一个可以直接运行的文件,成为可执行文件。 gcc test.o -o test
GCC可以根据需求在任何阶段结束。
函数库的使用分为静态和动态两种:
静态就是将目标文件和所需要的库链接在一起,这样生成的目标文件即便在没有库的环境中也能运行;体积大,运行效率高;
动态是指不链接在一起,等到可执行文件运行并且使用时才链接;体积小,效率低。
Glibc是GNU推出的C函数库,常用的有数学库libm、加密库libcrypt、网络服务库libnsl。其头文件在/usr/include下。链接库时用-l:gcc test.c -o test -lm:引用libm库。
GDB:GUN Debugger,GNU开发的调试器:如果要调试,编译的时候需要使用参数-g,作用是把调试信息加入生成可执行文件,否则无法调试:gcc -g test.c -o test;可以使用gdb test来启动调试。
1、查看源文件 - l;一次只能查看十行,回车或者输入‘l’会继续查看;
2、设置断点: - b:例如设置第七行,使用:" b 7 ";
3、查看断点: - info b;
4、运行程序: - r:从头开始运行,运行到断点
5、继续运行: - c:
6、查看变量: - p: 例如查看变量n: "p n"
7、单步运行: - s
Makefile三项基本内容: 需要生成的目标文件(target file)、生成目标文件所需要的依赖文件(dependency file)、生成目标文件的编译规则命令行(commond)。具体的格式为:
点击(此处)折叠或打开
-
target file : dependency file
-
commond
-
其中commond前面必须加一个
键。
Makefile文件中变量赋值有下面几种方式:
a = $(b):这样不论a之前的值是什么,经过这个命令后,a的值就是b的值。
a := $(b):与上面这种方式类似
a +=$(b):执行完这一句后,a的值是a之前的值“加上”b现在的值。
a ?=$(b):如果a之前没有定义,则将b的值赋值给a,如果a之前定义了,就不需要赋值。
如果文件被放在多个路径中,可以使用VPATH和vpath指定;
Makefile中条件判断:ifeq、ifneq、ifdef、ifndef;
Makefile中常用函数:
阅读(1716) | 评论(0) | 转发(0) |