首页 > 代码库 > 【Linux学习】 包含子目录的makefile简单应用
【Linux学习】 包含子目录的makefile简单应用
1 、目录结构
practice6 / ui / ui.h ui.c
practice6 / dal / dal.h dal.c
practice6 / bll / bll.h bll.c
practice6 / main.c
pracitce6 / Makefile
2、Makefile写法及说明
CC = gcc CFLAGS = -Wall -g BIN = main.outSUBDIR = $(shell ls -d */) //调用shell命令 ls -d */ 列出当前目录的子目录,不包含当前目录中的文件ROOTSRC = http://www.mamicode.com/$(wildcard *.c ) //$(wildcard *.c)表示从当前目录中查找*.c的文件/文件夹ROOTOBJ = $(ROOTSRC: %.c = %.o) //把ROOTSRC字符串中的.c结尾的字符串替换为.o结尾的字符串, %.c是GNUMake的写法,相当于shell的*.cSUBSRC = http://www.mamicode.com/$(shell find $(SUBDIR) -name ‘*.c‘) //调用shell命令在当前目录的子目录中查找名字为 *.c 的所有文件SUBOBJ = $(SUBSRC: %.c = %.o) //在SUBSRC字符串中把.c结尾的字符串替换为.o结尾的字符串$(BIN) : $(ROOTOBJ) $(SUBOBJ) //gcc生成main.out文件 $(CC) $(CFLAGS) -o $@ $^.c.o: //表示.c 文件 依赖于 .o文件 $(CC) $(CFLAGS) -c $< -o $@clean: rm -f $(BIN) $(ROOTOBJ) $(SUBOBJ)
3、过程及截图
未完待续...
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。