自用 方便写C语言demo的makefile
################################# #FILES ################################# objs := posix_ipcname sysv cfiles := $(wildcard *.c) cobjs := $(patsubst %.c,%,$(cfiles)) $(warning cfiles : $(cfiles)) $(warning cobjs : $(cobjs)) ################################## #GOALS ################################## #the ‘all‘ golas, depend on mult gols all: $(objs) [all] $+ allc : $(cobjs) [allc] $+ [allc] $< #mult, any, golas‘s rule % : %.c [cobjs] : $< [+.c] $(CC) $< -o -g ################# #CLEAN GOALS ################# #$(objs): %.b : %.c # BBBB $^ .PHONY: clean .PHONY: cleanc clean: -rm *.o -rm $(objs) cleanc: -rm *.o -rm $(cobjs)
以上内容放到 名称为makefile 的文件中,保存到和你的demo 源文件到同一个目录下
使用场景:
每次新增一个.c 文件的单独模块的 demo后,都要手动写 gcc file.c -o file -g 来编译新增的demo文件 ,比较麻烦
适合每个demo 单独一个.c 文件,写好源码后保存,在该目录打开 shell 只敲一句 make 就可以编译新增的.c 文件 (或手动配置到objs变量中也可以)
命令:
1组
make
只编译makefile中 objs 变量指定的文件 (不要.c的后缀)
make clean
只清理 objs 编译出来的 .o 和 可执行文件
2组
make allc
编译前扫一遍当前目录下的所有.c 文件 有哪些,可以省去不用添加新的源文件名到 objs 变量的麻烦。会将当前目录下所有.c 文件编译成 同名的可执行文件
make cleanc
扫一遍当前目录下的所有.c 文件 有哪些,清除这些文件的.o 和 可执行文件
例如
一目录下有3个demo文件
每个都要敲gcc 很麻烦
只要一句make
都编译出来了
相关推荐
chensen 2020-11-14
拉斯厄尔高福 2020-11-04
杜倩 2020-10-29
拉斯厄尔高福 2020-10-19
嵌入式资讯精选 2020-10-15
zhaochen00 2020-10-13
penkgao 2020-10-13
yiyilanmei 2020-10-05
wanshiyingg 2020-09-29
Mars的自语 2020-09-27
shenwenjie 2020-09-24
一个逗逗 2020-09-22
flycony 2020-09-13
zhaochen00 2020-08-20
Biao 2020-08-20
qingsongzdq 2020-08-19
penkgao 2020-08-17
cetrolchen 2020-08-14
GuoSir 2020-08-07