如何在C ++应用程序中包含EXTERNAL PCH文件?

时间:2019-04-29 10:15:28

标签: c++ include precompiled-headers

我已经开发了一个名为COMMON的C ++ DLL,其中包含一些外部类和函数。 我还开发了一个使用此DLL的C ++程序。

构建C ++程序时,我会从COMMON DLL中包含一些文件。因此,我在项目属性中添加了包含所有.h文件(约20个文件)的foldername。

效果很好。

现在,我有以下问题

如何自动生成包含所有其他包含的“大”包含,以便在C ++程序中可以直接使用此包含?

#include "dll-name.h" // include only one BIG DLL file

构建DLL之后,我只需提供3个文件就可以轻松分发它

dll-name.LIB
dll-name.DLL
dll-name.H

我的问题有解决方案吗?

如何生成这个“大” DLL包含文件?

PS:我使用Visual Studio 2017和不带CLI或CLR的纯C ++ 17。

1 个答案:

答案 0 :(得分:0)

您可以向用户发送主标题的预处理版本。 或将所有标头发送给用户。

我假设您想要第一个选择。 确保您拥有一个COMMON.h文件,其中包含您需要的所有内容。

如果使用的是Visual Studio IDE 打开命令行并执行。

CL /P /C COMMON.h 

结果将是一个巨大的.i文件,将其重命名为.h文件。 如果要保留一些预处理程序指令,请将其立即复制到文件中。 与您的DLL或LIB一起发送

这样,您不必将所有标头发送给用户,只需要发送一个即可。