我有一个解决方案,其中包含许多使用PCH的Visual C++项目,但某些项目为满足特定需求打开了特定的编译器开关。
大部分这些项目在其各自的stdafx.h(STL、boost等)中共享相同的头文件集。我想知道是否可能在项目之间共享PCH,以便于不必为每个项目编译每个PCH,而是可以拥有一个通用的PCH,供解决方案中的大多数项目使用。
似乎可以在项目设置中指定PCH的位置作为共享位置,所以我猜这应该可行。我还假设所有使用共享PCH的项目中的所有源文件都必须具有相同的编译器设置,否则编译器将抱怨PCH与正在编译的源文件之间存在不一致。
有人尝试过这个吗?它能行吗?
相关问题:这样的共享PCH应该过度包容吗?或者这会影响总体构建时间吗?例如,共享PCH可以包含许多广泛使用的STL头文件,但某些项目只需要<string>
和<vector>
。使用共享PCH节省的时间是否需要在后期的构建过程中付出代价,因为优化器必须丢弃PCH带入项目中的所有未使用的内容?