什么更快? 预编译标头或为对象构建的相同标头?
问题:如果我转到上面的模型,我还需要预编译头吗? 您还有什么建议可以加快更新速度吗?
我使用了预编译头,它似乎稍微加快了编译速度。
就我而言,某些部分从主应用程序中移出,以减少更新项目的时间(编译、构建、执行时间)
我考虑将所有整洁、完全调试的函数构建到 .so 对象文件,并将其相应地链接到依赖的应用程序
预编译头仅缓存头解析。解析的标头仍然需要集成到 C/C++ 文件的其余部分中,并且结果仍然需要优化。
SO 文件是 UNIX 风格的动态库。静态和动态库都包含完全编译和优化的函数,只需链接即可。
链接完成的外部重要函数总是比从(编译或纯文本)头文件扩展内联函数更快。
不过,将头文件的内容移动到目标文件/库并没有什么意义。通常使用的头文件应该只包含宏、类型/类型别名定义、内联函数以及 C++ 中的模板定义。这些都不会生成可链接对象(外部符号定义)。将普通头文件编译成目标文件应该总是产生一个空的目标文件。