是否有可能(最有可能使用 gcc / g++ 本身?)来确定单个编译包含的所有文件的哪些代码行实际使用?
我使用了很多第三方包含,并希望将它们剥离到实际使用的代码中以加快编译速度。
也许 g++ 可以通过多种选项的某种组合来输出这个?
我能提供的最好的建议是将巨大的包含文件分解成更小的部分。这允许开发人员仅包含解析符号所需的文件。
我最喜欢的例子是windows.h
. 巨型包含文件声明了整个 Windows API,无论您是否需要它们。如果您只想要处理文件的 API,那么您也可以获得用于拨号框的 API。
像怪物这样的一些商店包含文件,因为他们只需要在其源中包含一个文件。一个缺点是每个源文件现在都依赖于巨型包含文件。如果我更改其中一个包含文件,将重建整个系统,而不是依赖于我更改的头文件的几个模块。
在我的项目中,一次只编译几个文件;通常小于 5。这使得平均周转时间(修改然后构建)非常快。整个系统由服务器或开发人员在一夜之间重建。无需重建未更改的源文件。
所以拆分你的模块,这样你就不会每次都重建你的系统。