makefile
文章平均质量分 68
wait*for*the*wind
这个作者很懒,什么都没留下…
展开
-
MAKECMDGOALS 变量
make 在执行时会设置一个特殊变量 -- "MAKECMDGOALS" ,该变量记录了命令行参数指定的终极目标列表,没有通过参数指定终极目标时此变量为空。该变量仅限于用在特殊场合(比如判断),在 Makefile 中最好不要对它进行重新定义。下面通过一个实例来说明此变量的意思,设一 Makefile 内容如下:复制代码ifeq ("$(MAKECMDGOALS)","are you ok cmdgoals") who="you" endif are: @echo "...转载 2021-04-20 13:24:31 · 382 阅读 · 0 评论 -
Makefile中3个常用自动化变量
在Makefile,有三个常用也很好用的自动化变量:$@、$^、$<,所谓自动化变量是在模式规则中定义的一系列文件自动挨个的去除,直至所有的符合模式的文件都取完。这么说可能比较绕,我们可以简单直白的理解,我们写的应用程序,稍微简单的也要有几个文件(.c、.h等),那么复杂的可能有几百,几千,甚至几十万(kernel),我们在编写Makefile时,如果逐个文件去编译,链接,那是绝不可能的,所以我们需要一种自动规则,一条命令就能干很多重复的事儿,在C编程里,我们有各种循环操作,比如for、while、.转载 2021-04-08 13:27:33 · 1057 阅读 · 0 评论 -
Makefile的静态模式%.o : %.c
Makefile的静态模式是一个特别高效的“自动化”编译器,“静态”二字,我觉得是直译词意,可能是我不是真正理解什么叫静态,反正这个规则跟中国话的 “静态”没有半毛钱关系。 我们先说一种场景,我们在编写应用程序时,肯定不只有一个文件,会有n多个.C文件,.s文件,少则几十个,多则几千、几万个,我们在windows下写代码,是有各种IDE的,可以一键编译,但linux环境下,是看不上这种方式的,需要我们自己写Makefile的,这个Makefile的功能就类似于IDE的一键编译,是一个编译脚本,...转载 2021-04-08 13:16:58 · 1201 阅读 · 0 评论 -
makefile中命令前@
通常,make会把其要执行的命令行在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来,最具代表性的例子是,我们用这个功能来像屏幕显示一些信息。如:@echo 正在编译XXX模块......当make执行时,会输出“正在编译XXX模块......”字串,但不会输出命令,如果没有“@”,那么,make将输出:echo 正在编译XXX模块......正在编译XXX模块......如果make执行时,带入make参数“-n”或“--just-print”,那转载 2020-09-04 09:28:16 · 311 阅读 · 0 评论 -
makefile 中 all的用途
原文地址为:makefile 中 all的用途例如:CC := gccCFLAGS := -Wall -g -OsSHDIR := ../commonOBJS = ftserve.o $(SHDIR)/common.oall: ftserveftserve: $(OBJS)@$(CC) -o ftserve $(CFLAGS) $(OBJS)$(OBJS) : %.o: ...转载 2019-04-03 10:47:28 · 302 阅读 · 0 评论