gpt4 book ai didi

c++ - 在预编译的头文件中放什么? (MSVC)

转载 作者:IT老高 更新时间:2023-10-28 12:30:56 26 4
gpt4 key购买 nike

预编译头文件的最佳候选者是什么?我可以将 STL 和 Boost header 放在那里,即使它们有模板?这会减少编译时间吗?另外,减少编译时间的最佳 IDE 设置是什么?

最佳答案

快速回答:STL 和 Boost 头文件确实属于预编译头文件,即使这些头文件定义了模板类。

在生成预编译的头文件时,编译器会解析头文本(一项重要的任务!),并将其转换为针对编译器进行优化的二进制格式。

即使在编译其他 .cpp 文件时会实例化模板类,它们也会从预编译头中的信息实例化,这对于编译器来说读取速度要快得多。


(稍后添加)

您应该包含在预编译头文件中的一件事是作为项目的一部分并且经常更改的文件,即使每个 .CPP 文件都包含这些文件。

原因是这个——预编译头的生成可能需要很长时间,因为boost、STL和windows库都很大。

您可能有一个所有东西都使用的简单文件(例如“StringDefs.h”)。如果 StringDefs.h 包含在 stdafx.h 中,并且一个开发人员接触了 StringDefs.h,那么每个开发人员都必须等到 整个预编译的头文件重新编译。如果将 StringDefs.h 排除在预编译头文件之外,并与每个 .CPP 文件一起解析,速度会快得多。

关于c++ - 在预编译的头文件中放什么? (MSVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com