探索小游戏运行的技术基础与市场趋势分析
763
2022-10-25
万能 Makefile 模板
在 Linux 编程时,对于很多小工程来说,很多时候似乎没有必要用 autoconf 和 automake 工具来生成 Makefile,反而自己写一个 Makefile 更省事。这里给大家提供一个简单的 Makefile 模板,根据需要作相应修改,可以适用于很多小项目。
CC=gccSRCS=$(wildcard *.c */*.c)OBJS=$(patsubst %.c, %.o, $(SRCS))FLAG=-gNAME=$(wildcard *.c)TARGET=$(patsubst %.c, %, $(NAME))$(TARGET):$(OBJS) $(CC) -o $@ $^ $(FLAG)%.o:%.c $(CC) -o $@ -c $< -gclean: rm -rf $(TARGET) $(OBJS)
解释一下:
第1行指定编译器为 gcc,可以根据需要修改为 g++ 或者 arm-linux-gcc 等交叉编译工具链。第2行是为了获取匹配模式的文件名,*.c 表示当前工程目录的 c 文件,*/*.c 表示所有下一级目录的 .c 文件。第3行是将$(SRCS) 中的 .c 文件替换成 .o 文件。第4行用于指定编译选项,根据需要添加,比如 -g、-ml、-Wall、-O2 等等。第5、6行,同样使用了 wildcard 和 patsubst 函数来处理,目的是为了指定最终生成的可执行文件名。第8行$(TARGET):$(OBJS) 表示由 .o 文件链接成可执行文件。注意第9行前面是一个
另外,Makefile 的赋值除了使用等号(=),还可以使用 := 、+= 、?= 符号。具体含义如下:
:= 表示简单赋值(注意右边的 $ 值只会向上寻找)+= 表示追加赋值?= 表示判断赋值(判断左边是否已经定义过,如果是则忽略本次赋值)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~