多个目录编译的makefile的编写
来源:互联网 发布:国际短信软件 编辑:程序博客网 时间:2024/06/15 03:19
all:
cd dir1;make all;
cd dir3;make all;
cd dir2;make all;
clean:
cd dir1;make clean;
cd dir3;make clean;
cd dir1;make all;
cd dir3;make all;
cd dir2;make all;
clean:
cd dir1;make clean;
cd dir3;make clean;
cd dir2;make clean;
当然,我们也可以用makefile自身的特性,即 make all/clean -C dir1来进行编译,但是实际上两种写法都避免不了3个问题:
1.当新加入一个模块的时候,要写入两句代码,一句是all,一句是clean,很容易漏掉。
2.没有办法进行并行编译。因为很可能这些模块之间是不互相依赖的,而并行编译可以极大的提高速度(如果你受得了make那蜗牛般的速度的话,可以无视掉这一条)
3.依赖关系不明显(可以看出是dir2依赖与dir3,但是没有明确的指出)
那么解决方法是怎样呢?有这样一个makefile
dirs = dir1 \
dir2 \
dir3
.PHONY: all clean $(dirs)
all: $(dirs)
clean: $(dirs)
$(dirs):
$(MAKE) -j2 -C $@ $(MAKECMDGOALS)
dir2:dir3
在这个makefile的同级目录有3个目录,分别为dir1,dir2,dir3,其中每个目录的makefile就不说了,大家看图应该能明白,执行make后,结果如下:
0 0
- 多个目录编译的makefile的编写
- 多个目录编译的makefile的编写
- 多层目录编译的makefile文件编写
- 多个源文件进行编译,即 makefile 的编写
- 编译多个目录源码的Makefile写法
- 多目录工程构建Makefile的编写
- Linux Makefile多目录的编写
- Linux下多目录的Makefile编写
- 多目录时Makefile 的编写方法
- OpenCV 多文件编译的Makefile编写
- 多个目录Makefile编写模板
- 编译库的makefile编写
- 多个目录下Makefile的写法
- makefile多级目录的编译
- 多个*.c文件编译生成一个模块驱动*.ko的makefile文件编写
- 编译多路径/目录源代码并生成多个可执行文件的makefile实例
- 多文件、多目录的Makefile的编写
- 多文件多目录的Makefile文件编写
- AndroidManifest详解之Application(有图更好懂)
- RMAN组件及概念解释
- 进驻CSDN博客
- git使用技巧-撤销未提交修改
- 云计算概念辨析之SaaS
- 多个目录编译的makefile的编写
- 插件c.vim的使用
- C++内存管理
- EhCache使用心得
- .net 自定义错误页面
- 高性能Web服务器Nginx的配置与部署研究之---Upstream负载均衡模块(转)
- android libs文件夹中的jar包关联doc
- 为什么广州传智播客PHP网站培训分为基础班和就业班
- CSS 和 JavaScript 标签 style 属性对照表