在过去,我在VC中使用预编译头来加快编译时间,但通常只在较小的项目中,这些项目基本上只是源代码的一个小目录.由于VC要求所有文件都包含相同的头文件而不管路径(例如“foo.h”而不是“../foo.h”),当你拥有不同的源嵌套目录时,事情会变得毛茸茸.如果我的所有文件都是
#include "foo.h"
它工作,但只有当我有预编译头文件时.为了在所有情况下都能工作,我需要创建虚拟的foo.h文件
#include "../foo.h"
这开始变得非常快,特别是当你有多个级别时.
虽然我通常更喜欢Microsoft工具,但我必须说GCC的系统,你手动将头文件编译成.gch文件似乎远远优于我.它不那么具有侵入性,并且不要求您在每个编译单元中包含所有标头,如果您在没有预编译标头的情况下构建编译器,那么这些标头是丑陋和缓慢的.
我错过了VC版本的一些内容吗?我从事专业工作的大型项目都没有使用过预编译的头文件,我想确保在放弃之前给予他们公平的震动并且接受更长的编译时间.
这样做有更干净的方法吗?
谢谢!
最佳答案 是否可以更新项目包含路径,因此无需创建单独的标头.我们使用头文件Common / Common.h在所有项目中创建预编译头.
如果问题是编译时间,不同的方法可能会解决它:我们从项目中删除了预编译的头文件,因为分布式编译速度明显快于它们.