创建的规则简单不多说了,以后在写这。
注意:1)宏定义没有("")双引号。2)可以有续行符'\'3)注释是以#开头的
2.创建风格:
假设:main在test.cpp里面,可执行文件将是test,包含class1、class2两个类,每个类都有头文件和源文件。
刚开始只有class1类,class2类后加的。
makefile如下:
HEADERS=class1.h
OBJS=test.o class1.o
test: $(OBJS)
g++ $(OBJS) -o test
class1.o:class1.h
test.o:$(HEADERS)
第一行应该是必要的宏定义,定义的目标文件一般是针对最终的可执行文件和目标文件test.o test的依赖文件。
宏定义后最终的可执行文件生成规则首先定义出来。
然后是最终的目标文件生成规则、然后是每个模块的生成规则。
(在这里我们可以发现,生成目标文件的时候需要的只是源文件,而且各个模块只要有声明就行。链接的时候才需要实现)
当我们添加一个类class2的时候很简单:
HEADERS=class1.h class2.h
OBJS=test.o class1.o class2.o
test: $(OBJS)
g++ $(OBJS) -o test
class1.o:class1.h
test.o:$(HEADERS)
class2.o:class2.h
需要做得是:
1/在程序文件中包含相应的文件
2/makefile宏定义HEADERS OBJS做些小的改动
3/添加一个class2项目的目标文件
-----------------------------------------------------------------------
下面的例子:
#makefile
#in the future I will define the macro
testCin:testCin.o
g++ testCin.o -o testCin
testCin.o:
g++ -c testCin.cpp
#clean the temp files
clean:
rm *.o
之后运行
make clean
将会删除所有的".o"文件。
阅读(2203) | 评论(0) | 转发(0) |