1
要加快gcc的编译时间,我们有两个选择:ccache是否完全超越gcc的预编译头文件?
- 的ccache
- gcc的预编译头
不过,我不知道这是在什么情况下更好。
我已经使用了这个问题,并得到了一些模糊的印象,ccache完全优于其他。是对的吗?
要加快gcc的编译时间,我们有两个选择:ccache是否完全超越gcc的预编译头文件?
不过,我不知道这是在什么情况下更好。
我已经使用了这个问题,并得到了一些模糊的印象,ccache完全优于其他。是对的吗?
预编译头文件和ccache用于完全不同的用例。 ccache可以与预编译头一起使用,它们不是互斥的。
ccache缓存整个给定的源文件,标题和全部,缓存编译后的对象模块。从技术上讲,ccache需要整个预处理源翻译单元,对其进行散列并缓存结果对象模块。
当不同的源翻译单元重复使用相同的头文件时,预编译头可节省一点时间。但是,如果相同的源代码被重复编译,预编译头文件不会有帮助(超出使用预编译头文件的唯一好处)。这就是ccache进来的地方,ccache悄悄地跳过了整个编译阶段,只是从缓存中获取以前编译的目标模块。
因此,比较哪种方法更好,ccache或预编译头文件没有意义。他们解决两个不同的问题。