好的,我有适用于 Mac 和 Windows 的旧 Metrowerks 代码,以前的开发人员对这个代码库构建的每个项目都使用了预编译的头文件。
从概念上讲,如何摆脱预编译的标头?
您是否将 .pch 的内容移动到 core.h 并将其包含在所有类 .h 文件中?
我想转向使用 CMAKE 进行构建,虽然有一些技巧可以使预编译的头文件工作,但我认为最好删除对它们的依赖项。
有些人可能会说编译速度,但我不是在比赛,我已经拥有快速的设备,我更感兴趣的是如何摆脱预编译的头文件。
好的,我有适用于 Mac 和 Windows 的旧 Metrowerks 代码,以前的开发人员对这个代码库构建的每个项目都使用了预编译的头文件。
从概念上讲,如何摆脱预编译的标头?
您是否将 .pch 的内容移动到 core.h 并将其包含在所有类 .h 文件中?
我想转向使用 CMAKE 进行构建,虽然有一些技巧可以使预编译的头文件工作,但我认为最好删除对它们的依赖项。
有些人可能会说编译速度,但我不是在比赛,我已经拥有快速的设备,我更感兴趣的是如何摆脱预编译的头文件。
从概念上讲,如何摆脱预编译的标头?
预编译的头文件是一种优化。从概念上讲,您只需使用常规标头即可摆脱预编译的标头。
您是否将 .pch 的内容移动到 core.h 并将其包含在所有类 .h 文件中?
我认识这样做的程序员。就个人而言,我更喜欢知道我正在使用哪些函数以及它们来自哪里,因此我确保每个文件#include
都是编译该文件所需的所有头文件(并且只有编译该文件所需的头文件)。再说一次,这确实需要不断检查是否不再需要标头。
去过那里......在一个 C++ 项目中,绝对每个翻译单元都包含一个中央标题,然后几乎每个 Boost 标题都包含在内。在支持 PCH 的平台上很好,但我们正在一些不支持的平台上进行编译,而且它们需要很长时间。(就像你的core.h
方法一样。不要那样做,尤其是不要使用 C++。)
所以,这里是:
是的,这就是蛮力方法。不幸的是,我不知道更好。