(7-11) : 以上是对宏的定义,,以-D开头,其效果与文件中的#define等效,与#define不同之处在于其定义的宏是全局的,而#define定义的宏只在一个文件中有效。
(11-15) : 编译参数CFLAGS定义,+=的意思是在以前的基础上再加上现有的值。按照上面的意义最后CFLAGS应该是 - O -g -DMODEL= tune1 -DRT -DNUMST=2 -DTID01EQ = 1 -DNCSTATES = 0 -DMT = 0 -DHAVESTDIO-DEXT_MODE -DUSE_RTMODEL
16-17: 源文件定义
18 :目标文件是将源文件的.c换成.o,即如果SRCS件中有 tune1.c 则SRCS就会有tune1.o.
19: RM工具定义
20:编译器定义
21 链接器定义(这里搭扮神应该写错了或者需要对链接参数做特殊的定义才能也将LD定义成gcc)
22.目标定义
23.所有的.o文件都对与其同名的.c文件进行编译
24 $(CC)代表gcc,-c代表只编译,-o表示输出的文件 $@代表目标文件(-o $@在这里代表被编译的.o) CFLAGS 和 INCLUDES 一个是编译选项一个是头文件目录 $<指的是 %.c
25-26.如果知亏 $(OBJS)都存在,则声称tunel,其实就是链接,-lm 只的是链接以一个libm.a库文件
27-28 移除文件
综上,如果make clean 则会清除所有.o文缺中件
make tunrl 或者 make all 都会生成tune1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)