GCC编译优化应用预编译头(二)

GCC编译优化应用预编译头(二),第1张

工具:

https://github.com/wangxiaobai-dd/GccPrecompiledHeader

对原先的工具进行了更新

  • 增加 GchTool/RevertInc.cpp :
/RevertInc TestRevertTool/dirA inc.h [unified]

可以将包含预编译头文件(如inc.h)的 cpp 文件替换还原
若 inc.h 包含 a.h、b.h,使用工具后 目录下 *.cpp 中 inc.h 都被替换为 a.h b.h
[unified] 可选参数,指包含多个 cpp 文件的 unified cpp


  • 修改 GchTool/CheckInclude :
/CheckInclude CheckDir [FindDirA] [FindDirB] ...

进行递归检查头文件包含, 若 a.cpp 包含 a.h ,而 a.h 中还包含其他头文件,并且在 FindDirN 中,递归 Check.

[FindDirA],[FindDirB],… 变长参数,指进行递归搜索头文件的目录


  • 增加 GchTool/GetCommonInclude.cpp
./GetCommonInclude --files analyseInc-1.txt,analyseInc-2.txt --base dirA,dirB 逗号分割参数 --rate 0.9

从得到的多个频率文件中,获取共同的头文件包含,生成 AnalyseFinal.txt

base :指产生频率文件的目录,如 analyseInc-1.txt 产生于 dirA,analyseInc-2.txt 产生于 dirB
rate : 输出每个目录下频率都超过 0.9 的头文件


  • 非脚本工具 - Gcc 编译显示优化 Example/compliedisplay.py

编译完成显示每个目录编译和链接的时间


  • 非脚本工具 - 取消 gchCheck.py 使用,而使用 .d 文件,参考 GchTool/TestGchTool/dirA/Makefile
include inc.d
inc.d :inc.h
    @set -e; rm -f $@; \
         $(CXX) -M $(CXXFLAGS) $< > $@.$$$$;\
           sed 's,\($*\)\.o[ :]*,.h.gch $@ : ,g' < $@.$$$$ > $@; \
           rm -f $@.$$$$

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1352540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-14
下一篇 2022-06-14

发表评论

登录后才能评论

评论列表(0条)

保存