【发布时间】:2022-07-17 05:36:25
【问题描述】:
我正在开发一个包含许多 .cpp 和 .h 文件的 cpp 项目。 我一直在努力改善它缓慢的编译时间,发现项目中的 cpp 文件包含许多实际上在代码中没有使用的不必要的头文件。
这会降低 cpp 编译时间吗?
我认为它可以,但我想确切地知道它为什么会影响 cpp 编译时间,以及理论上会影响多少。
【问题讨论】:
-
这是必然的,尽管预编译的头文件可以提供帮助。当您通过代码库工作时,我会一次取出一个 .cpp 文件。最初将它们注释掉,找出有效的和无效的,然后在继续之前删除不需要的。
-
“为什么会影响 cpp 编译时间”——因为这些文件中的文本至少需要进行预处理和解析。它对编译时间有多大影响?你为什么不试试呢?我刚刚创建了一个简单的源文件,它的编译时间比它为空时要长 25 倍。
-
@DanielLangr 天哪!太好了,麻烦您测试一下。
-
@DanielLangr 感谢您的提示。对于您的问题,由于我正在处理的项目有数千个文件,所以我想在尝试使用项目之前知道理论数字。
-
@Lani:没有理论,因此没有理论数字。这就是为什么 Daniel Langr 做了明智的事情,并且只是在实践中进行了测试——在他的系统上。当然,使用空文件作为基线意味着编译时间本质上只是启动编译器本身。
标签: c++ compilation header-files