生成过程中的 PCH 文件

原文地址:http://msdn.microsoft.com/zh-cn/library/hd8sctab(v=vs.90).aspx


软件项目的代码基础通常包含在多个 C 或 C++ 源文件、对象文件、库和头文件中。通常情况下,生成文件将这些元素的组合整理到一个可执行文件中。下图显示了使用预编译头文件的生成文件结构。此关系图中的 NMAKE 宏名和文件名与 PCH 的示例生成文件和 PCH 的示例代码中的示例代码中的名称一致。

此图使用三个关系图设备显示生成过程的流程。命名矩形表示每个文件或宏;三个宏表示一个或多个文件。灰色区域表示每个编译或链接操作。箭头指示在编译或链接过程中组合的文件和宏。

使用预编译头文件的生成文件结构

使用预编译头文件的生成文件

从关系图顶部开始,STABLEHDRS 和 BOUNDRY 都是 NMAKE 宏,您在这些宏中列出不大可能需要重新编译的文件。只有在预编译头文件 (STABLE.pch) 不存在或对两个宏中列出的文件进行更改时,才使用命令字符串

CL /c /W3 /Yc$(BOUNDRY) applib.cpp myapp.cpp

编译这些文件。无论在哪一种情况下,预编译头文件都将只包含来自 STABLEHDRS 宏中所列文件的代码。在 BOUNDRY 宏中列出最后一个想预编译的文件。

在这些宏中列出的文件可以是头文件,也可以是 C 或 C++ 源文件。(单个 .pch 文件不能同时用于 C 和 C++ 模块。)请注意,可以使用 hdrstop 宏使预编译在 BOUNDRY 文件中的某个位置停止。有关更多信息,请参见 hdrstop

在关系图中继续向下,APPLIB.obj 表示在最终应用程序中使用的支持代码。它是从 APPLIB.cpp、UNSTABLEHDRS 宏中列出的文件以及来自预编译头的预编译代码创建的。

MYAPP.obj 表示最终应用程序。它是从 MYAPP.cpp、UNSTABLEHDRS 宏中列出的文件以及来自预编译头的预编译代码创建的。

最后,通过链接 OBJS 宏中列出的文件(APPLIB.obj 和 MYAPP.obj)创建可执行文件 (MYAPP.EXE)。

有关此图的进一步讨论,请参见:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值