我有一个框架正在被几个项目(包括几个样本来显示框架如何工作)使用。该框架包含核心,图形,物理,GUI等组件。每一个都是独立的库。还有几种配置。高效共享预编译头文件
主要解决方案文件使用所有可能的配置编译完整项目,以便项目可以使用这些库。由于框架很少被重新编译,尤其是有人(包括我)正在开发一个利用框架的项目,所以预编译多个头文件是很有意义的。
最初我有每个项目/示例都有自己的预编译头用于整个项目。每次我将不得不重建相同的pch(例如Debug),所以我决定共享PCH将减少冗余PCH编译。到现在为止还挺好。我有一个项目,将PCH和图书馆一起编译。所有后续项目/样品现在都使用相同的PCH。这非常有效。
唯一的问题是我看到文件大小的增加。这不是一个障碍,就好像一个使用框架的项目打算被释放,它可以从共享的PCH中断开并自行创建。为了快速开发,我这样做了(我实际上已经创建了一个工具来创建VS项目文件和源文件,用于准备构建的新项目/示例以及便于升级以前使用旧版本的项目框架版本)。
无论如何(我假设)文件大小的增加是因为创建共享PCH的独立VS项目文件包含了所有库中的所有头文件。 我的问题是我是否可以使用条件编译(#ifndef)来减小最终可执行文件的大小?或者可能以某种方式共享多个PCH文件(但据我所知,这是不可能的,但我可能是错的)如果我没有意义,请说出来(以客气的话:)),因为我对PCH文件的知识非常有限。
谢谢!
注意:为了重新说明和清楚,到目前为止,我有一个解决方案文件正在编译包括共享PCH在内的所有库。现在,如果我重新编译所有示例和项目,它们最多可以在几秒钟或更长时间内编译。之前,每个项目都会重新创建一个PCH文件。此外,最初我想为每个库使用PCH,但后来我发现源文件不能使用多个PCH文件,因此此选项不可行。另一种选择是编译所有可能的PCH文件组合,但这太耗时且麻烦且容易出错。
,请投票给本:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4931119-allow-precompiled-headers-to-be-shared-between-pro – 2013-11-08 09:26:34