makefile 文件详细介绍?

makefile 文件详细介绍?,第1张

makefile文件主要有以下五种组成部分。显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。变量定义: make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的引用位置上。文件指示:其包括三个部分,一个是在一个makefile中引用另一个makefile,就像C语言中的include一样。另一个是指根据某些情况指定makefile中的有效部分,就像C语言中的预编译tlif一样。还有祥核就是定义一个多行的命令。注释: makefile 中支持行注释,这一点需要特别注意。makefile 中的注释和 shell脚本一样,其注释是用“#”字符。如果需要在 makefile中使用“#”唤宴知字符,可和消以用‘\’对其进行转义。例如,“\#”表示一个‘#’字符。makefile文件的文件名最好命名为makefile或者Makefile。因为在默认的情况下,make命令会在当前目录下按顺序找寻这两个文件进行解释。用户也可以为makefile文件自定义一个文件名,例如,Make.makefile,Make.admin等。

(1-6) : INCLUDES 后面定义的是头文件搜索的目录列表,-I后面好像不用空格

(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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8201971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存