vs编译程序加快速度的方法

来源:互联网 发布:淘宝客骗局 编辑:程序博客网 时间:2024/05/06 04:51

在使用VS2013编译C++程序的时候,修改某个文件,会使整个工程都重新编译一遍,为了使编译速度加快,可以修改C++配置属性:


第一因时间引起的


1.找到项目-属性-配置属性-C/C++


修改:


1)项目-属性-配置属性-C/C++---常规---调试信息格式:程序数据库(/Zi)


2)项目-属性-配置属性-C/C++---常规---多处理器编译:是(/MP)


/MP 选项在命令行上以减少总时间编译源文件。/MP 选项使编译器创建一个或多个自身的副本,每个副本都位于单独的进程中。然后这些副本同时编译源文件。因此,可显著减少生成源文件的总时间。


3)项目-属性-配置属性-C/C++---代码生成----启用最小重新生成:Yes(/Gm)


但这一项是和多处理器编译是冲突的:

cl : 命令行 warning D9030: “/Gm”与多处理不兼容;忽略 /MP 开关

所以如果使用多处理器编译,则关掉最小重新生成,反之亦然。


4)项目-属性-配置属性-C/C++---优化---优化:使速度最大化(/O2)


通常,算法程序选择最大化速度(/O2),界面程序选择最小化大小(/O1),可以获得最佳的效果

但打开这一项,与代码生成---基本运行时检查:两者(/RTC1)是冲突的

即若使用速度最大化,则将基本运行时检查设为默认值


5)项目-属性-配置属性-链接器---常规---“启用增量链接”:“是”


6)在vs上方的栏目中寻找:工具-选项-项目和解决方案-生成并运行:

     运行时,当项目过期时,选择提示生成。


第二预编译头文件引起的:


项目-属性-配置属性-预编译头文件:


使用预编译头文件的方法:


生成预编译头需要stdafx.h/.cpp文件的支持


1.创建stdafx.h/.cpp文件:


要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch文件)
      

我们知道一个头文件是不能编译的。所以我们还需要一个cpp文件来生成.pch 文件。这个文件默认的就是stdafx.cpp。在这个文件里只有一句代码就是:#include “stdafx.h”


1)创建stdafx.h和stdafx.cpp文件,并添加到工程中。stdafx.h头文件中主要包含的是一些不会经常改变的代码,如依赖库的那些头文件


2)项目-属性-配置属性-C/C++---预编译头---使用(/Yu)


3)单独选中stdafx.cpp,右键--属性-配置属性-C/C++---预编译头---创建(/Yc)


不然会有错误:无法打开预编译头 Debug\XXX.pch


4) 如果使用了/Yu,就是说使用了预编译,我们在每个.cpp文件的最开头,我强调一遍是最开头,包含你指定产生pch文件的.h文件(默认是stdafx.h)不然就会有问题。如果你没有包含这个文件,就告诉你Unexpected file end. 如果你不是在最开头包含的,你自己试以下就知道了,绝对有很惊人的效果…


上述步骤完成后,进行编译,可能会出现错误:


 

fatal error C1076: 编译器限制,达到内部堆限制,使用/Zm指定更高的限制

进入工程->点右键->工程属性->c++-〉命令行,在最下边输入/Zm1000,点确定
这是预编译头的时候虚拟内存不够引起的。具体数值可以尝试着调。



0 0