注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

多多的爹

 
 
 

日志

 
 

预编译代码  

2006-06-30 11:32:05|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Microsoft C C++ 编译器提供了用于预编译任何 C C++ 代码(包括内联代码)的选项。利用此性能特性,可以编译稳定的代码体,将已编译状态的代码存储在文件中,以及在随后的编译中,将预编译的代码与仍在开发的代码结合起来。由于不需要重新编译稳定代码,因此后面每次编译的速度都要快一些。

何时需要预编译源代码

预编译代码有助于在开发周期中缩短编译时间,特别是在以下情况中:

l         总是使用不经常改动的大型代码体。

l         程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

用于创建预编译头文件的第一次编译所花费的时间比后面的编译稍长一些。通过包含预编译代码可以加快后面的编译速度。

C C++ 程序都可以预编译。在 C++ 编程中,常见的做法是将类接口信息分别放到不同的头文件中。此后就可以将这些头文件包含在使用该类的程序中。通过预编译这些头文件,可以缩短程序的编译时间。

两种预编译代码方法

使用 Visual C++ 可以预编译任何 C C++ 代码;并不仅限于预编译头文件。若要预编译头文件,请从以下方法中选择:

l         自动预编译

l         手动预编译

第一种方法快捷方便。第二种方法要求先进行规划,但如果预编译的是源代码而不是简单的头文件,则将大幅度提高编译速度。

自动预编译

如果希望编译器决定何时创建和使用预编译头,则使用自动预编译。

自动预编译头选项是 (/YX)/YX 选项使编译器或者创建具有默认名 VCxy.pch 的预编译头(其中 xy 是编译器的主版本和次版本),或者使用名为 VCxy.pch 的预编译头(如果存在这样的预编译头)。也可以控制用 /Fp(指定预编译头文件名)选项创建或使用的预编译头的名称。

手动预编译

如果知道源文件使用一组通用的头文件但包含顺序不同,或者希望将源代码包含在预编译中,则使用手动预编译。

手动预编译头选项是 /Yc(创建预编译头文件)和 /Yu(使用预编译头文件)。使用 /Yc 选项创建预编译头,/Yc 允许对头文件和源代码都进行预编译,使用/Yu/Yc的同时,还可以将 /Fp 选项与 /Yc /Yu 选项一起使用,为预编译头提供可选名称。

生成 PCH 文件

可以通过非常简单的方法用一个 PCH 生成另一个 PCH

cl /Yc"stdafx.h" /Fp”stdafx.pch” -c stdafx.cpp

cl /Yu"stdafx.h" /Fp”stdafx.pch” -c level2.cpp

level2.cpp 文件如下所示:

#include "stuff.h"

#include " level2.h"

……

 

 

  评论这张
 
阅读(8)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017