有三个文件: file1:stutemp.cpp #include <iostream.h> #include "sayhai.h" int main() { Person s; s.printName(); return 0; }
file2:sayhai.h #ifndef SAYHAI_H #define SAYHAI_h class Person { public: Person(); void printArr(); private: void printArray(int); int saleValue[4]; }; #endif
file3:sayhai.cpp #include <iostream.h> #include "sayhai.h" Person::Person() { for( int i = 0 ; i < 4 ; i++ ) { saleValue[i]=0; printArray(i); } } { cout << " test ok!" << endl; } void Person::printArray(int x) { cout << " saleValue[ " << x << " ] = " << saleValue[x]; }
从上面的结构可以看出,主文件,调用了头文件的接口来实现打印功能,而接口头文件再去找他的实现类;现在的问题是,我们怎么样来方便的编译这个程序;常见的办法是: g++ -c stutemp.cpp g++ -c sayhai.cpp g++ -o stutemp stutemp.o sayhai.o
这是对于一个调用和关联得比较少的程序,我们可以使用这种手动的办法来进行编译。那么如果是项目比较大,调用关系比较复杂的时候,我们又该怎么样来处理呢?而且,当我们要修改程序中的某一段的时候,整个程序的其它文件都需要重新编译一次,这样又如何来处理呢?
在这里,LINUX给我们提供了一个很好的工具组合:那就是MAKE工具,make是linux自带的,使用make时,需要我们编写自己的makefile文件。现在就来说一下这个文件要怎么样来写。在这里我使用的这下面的办法。我的makefile的内容如下: #MakeFile stutemp:stutemp.o sayhai.o g++ -c $@ $^ stutemp.o:stutemp.cpp sayhai.h g++ -c $< sayhai.o:sayhai.cpp sayhai.h g++ -c $<
以后,我们修改任何一个程序的时候,都只需要执行一下make命令就可以了!!!
现在简单的说一下上面的这段MakeFile文件的内容吧: 第一行表示的是依赖关系.第二行是规则. 表示我们的目标(target)stutemp的依赖对象(components)是sayhai.o sayhai.o Makefile 有三个非常有用的变量.分别是$@ , $^ , $< 代表的意义分别是:
OK,先写到这里吧,以后再分享!! |
makeFile文件编写初探!!
最新推荐文章于 2015-02-12 09:04:11 发布