vc的预编译头功能很强大,可以极大的提高编译效率,其实gcc也支持这项功能,设置更为简单。把所有外部文件都放到一个头文件里,比如predefine.h,所有引用外部文件的cpp文件都包含这个predefine.h就可以了。
首先要产生gch文件:
predefine.h.gch : predefine.h
$(cc) $(CFLAG) -x c++-header $> $^
然后要让编译器知道#include "predefine.h"的源文件去检查有gch文件。
$(OBJ) : predefine.h.gch
注意事项:预编译头文件不能包含在其他的头文件里面,只能被源文件包含。 个人建议尽量不要在头文件里包含其他的头文件,而是放到源文件中。比如a.h要用b.h的类,不要在a.h里面去包含b.h,而是在a.cpp里这样包含:
#include "b.h"
#include "a.h" //必须保证这个顺序。
OK,大功告成了。享受快速编译的乐趣吧。
首先要产生gch文件:
predefine.h.gch : predefine.h
$(cc) $(CFLAG) -x c++-header $> $^
然后要让编译器知道#include "predefine.h"的源文件去检查有gch文件。
$(OBJ) : predefine.h.gch
注意事项:预编译头文件不能包含在其他的头文件里面,只能被源文件包含。 个人建议尽量不要在头文件里包含其他的头文件,而是放到源文件中。比如a.h要用b.h的类,不要在a.h里面去包含b.h,而是在a.cpp里这样包含:
#include "b.h"
#include "a.h" //必须保证这个顺序。
OK,大功告成了。享受快速编译的乐趣吧。