2011-10-26 88 views
2

我有一个使用-MMD -MP选项调用g ++的make文件。这将创建一个看起来像这样的东西的.d相关文件:如何在gcc和make中使用预编译头文件?

blah.o: header1.h header2.h 

现在,我想补充预编译头的支持,并希望有类似的规则:

$(OUT_DIR)/%.h.pch: $(SRC_DIR)/%.h 
    g++ -c $< -o [email protected] 

和然后我想在.d文件看起来像这样:

blah.o: header1.h.pch header2.h.pch 

这样.o文件依赖于预编译头,并预编译头靠头。这样我就可以确定任何预编译头文件都是在编译依赖.cpp文件之前创建的。我的问题是我找不到一种方法让g ++创建具有* .pch扩展名的依赖文件。我尝试的所有东西都会产生典型的.h扩展名。任何人有任何想法?

回答

3

如何添加一个命令

sed -e 's/.h /.h.pch /g' -e 's/.h$/.h.pch/' $*.d > $*.dd 

(您可以代替修改foo.d如果你喜欢。)

+0

我,其实,这样做是“治标不治本”。但是,它最终可能会成为更持久的解决方案。 – user545226