码迷,mamicode.com
首页 > 编程语言 > 详细

自用 方便写C语言demo的makefile

时间:2020-01-23 22:39:42      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:当前目录   port   img   code   后缀   js 变量   wildcard   pat   ipc   

#################################
#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)
    -@echo [all] $+

allc : $(cobjs)
    -@echo [allc] $+
    -@echo [allc] $@ $<

#mult, any, golass rule
% : %.c
    -@echo [cobjs] $@ : $< [+.c]
    $(CC) $< -o $@ -g
    
#################
#CLEAN GOALS
#################
#$(objs): %.b : %.c
#    -@echo 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

技术图片

 

 都编译出来了

 

 

 

自用 方便写C语言demo的makefile

标签:当前目录   port   img   code   后缀   js 变量   wildcard   pat   ipc   

原文地址:https://www.cnblogs.com/cyy12/p/12231403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!