1. gcc编译器 基本的命令格式:
gcc [options] [filenames]
对于options选项有如下几个:
-c :只进行编译而不进行链接
-o :确定输出的文件名称x,如果不给出选项默认生成的是a.out
-g :对源代码进行调试
-O :对程序进行优化,一般使用的是O2对代码进行优化
-Wall:生成所有的警告信息
-S: 生成汇编语言文件
-I:指定同文件
2.make的基本格式:
目标:目标所依赖的文件
<TaB> command(命令)
clean:
rm -f *.o 生成的目标文件 (对生成的目标文件进行删除和.o文件进行删除)
对于其中的命令就是使用gcc进行编译
3为使makefile写 的简洁我们使用变量进行宏定义,
两种变量的定义方式
-递归展开式:Val(变量)=val(gcc执行的部分命令 的代替)
-简单展开式: VR(变量):=val(gcc执行的部分命令 的代替)
变量的使用$(Val)
自动变量主要使用的是
-$< :第一个依赖文件的目标名称
-$^ :所有不重复的目标依赖文件,以空格隔开
-$@:目标文件 的完整名称
-$-*:不包含扩展名的目标文件名称
4 虚拟路径(VPATH)
我们一般编译的c语言文件较小都放在同一个文件夹下进行编译
如果是编译较多的文件的源文件时,通常我们需要把他们放在不同的目录,当make需要去寻找依赖文件的依赖关系时,你可以在文件之前加上路径,执行make时,让make自行寻找路径,VPATH可以完成这个功能
5 直接使用make时
-C 代表指定目录下面的makefile
-f读入当前的目录的下的file文件作为makefile
-i忽略所有的命令执行的错误
-I 指定被包含的makefile所在的目录、
-n只打印的要执行的命令,但不执行这些命令