VC编译选项

VC++代码执行速度优化 本文主要整理MSDN几篇关于VC++编译器优化的几篇文章,试验并总结了一个简单易用的VC++代码优化的攻略。 一、基础知识     VC++代码优化分为两类:代码大小优化和代码速度优化。本文主要关注代码速度优化,在某些需要高效率的应用场景下,代码的执行速度有极大的应用价值 。 二、按配置文件优化     按配置文件优化可以优化输出文件,其中优化程序使用的数据是通过对 .exe 阅读详情

 

转自:http://hi.baidu.com/0xeb/blog/item/6cbff9f88a8aff5f242df23c.html

 

-优化-  
/O1 最小化空间 minimize space
/Op[-] 改善浮点数一致性 improve floating-pt consistency
/O2 最大化速度 maximize speed
/Os   优选代码空间   favor code space
/Oa 假设没有别名 assume no aliasing
/Ot 优选代码速度 favor code speed
/Ob 内联展开(默认 n=0) inline expansion (default n=0)
/Ow   假设交叉函数别名   assume cross-function aliasing
/Od   禁用优化(默认值)   disable optimizations (default)
/Ox   最大化选项。(/Ogityb2 /Gs) maximum opts. (/Ogityb1 /Gs)
/Og   启用全局优化   enable global optimization  
/Oy[-]   启用框架指针省略   enable frame pointer omission
/Oi   启用内建函数   enable intrinsic functions


-代码生成-  
/G3   为 80386 进行优化   optimize for 80386
/G4   为 80486 进行优化   optimize for 80486
/GR[-]   启用 C++ RTTI   enable C++ RTTI
/G5   为 Pentium 进行优化   optimize for Pentium
/G6 为 Pentium Pro 进行优化   optimize for Pentium Pro
/GX[-]   启用 C++ 异常处理(与 /EHsc 相同)   enable C++ EH (same as /EHsc)
/EHs   启用同步 C++ 异常处理   enable synchronous C++ EH
/GD 为 Windows DLL 进行优化 optimize for Windows DLL
/GB   为混合模型进行优化(默认)   optimize for blended model (default)
/EHa   启用异步 C++ 异常处理   enable asynchronous C++ EH
/Gd   __cdecl 调用约定   __cdecl calling convention  
/EHc   extern“C”默认为 nothrow   extern "C" defaults to nothrow
/Gr   __fastcall 调用约定   __fastcall calling convention
/Gi[-] 启用增量编译 enable incremental compilation
/Gz   __stdcall 调用约定   __stdcall calling convention  
/Gm[-]   启用最小重新生成   enable minimal rebuild
/GA   为 Windows 应用程序进行优化 optimize for Windows Application
/Gf   启用字符串池   enable string pooling  
/QIfdiv[-]   启用 Pentium FDIV 修复   enable Pentium FDIV fix  
/GF   启用只读字符串池   enable read-only string pooling  
/QI0f[-]   启用 Pentium 0x0f 修复   enable Pentium 0x0f fix
/Gy   分隔链接器函数   separate functions for linker
/GZ   启用运行时调试检查 enable runtime debug checks
/Gh 启用钩子函数调用 enable hook function call
/Ge   对所有函数强制堆栈检查   force stack checking for all funcs
/Gs[num]   禁用堆栈检查调用   disable stack checking calls


-输出文件-  
/Fa[file]   命名程序集列表文件   name assembly listing file
/Fo   命名对象文件   name object file
/FA[sc]   配置程序集列表   configure assembly listing  
/Fp   命名预编译头文件   name precompiled header file
/Fd[file]   命名 .PDB 文件   name .PDB file  
/Fr[file]   命名源浏览器文件   name source browser file
/Fe   命名可执行文件   name executable file
/FR[file]   命名扩展 .SBR 文件   name extended .SBR file
/Fm[file]   命名映射文件   name map file


-预处理器-  
/FI   命名强制包含文件   name forced include file
/C   不吸取注释   don't strip comments  
/U   移除预定义宏   remove predefined macro
/D{=|#}   定义宏   define macro
/u   移除所有预定义宏   remove all predefined macros
/E   将预处理定向到标准输出 preprocess to stdout
/I 添加到包含文件的搜索路径   add to include search path
/EP   将预处理定向到标准输出,不要带行号   preprocess to stdout, no #line
/X   忽略“标准位置”   ignore "standard places"
/P   预处理到文件   preprocess to file


-语言-  
/Zi   启用调试信息   enable debugging information
/Zl   忽略 .OBJ 中的默认库名   omit default library name in .OBJ
/ZI   启用调试信息的“编辑并继续”功能 enable Edit and Continue debug info
/Zg   生成函数原型   generate function prototypes
/Z7   启用旧式调试信息   enable old-style debug info
/Zs   只进行语法检查   syntax check only
/Zd   仅要行号调试信息   line number debugging info only
/vd{0|1}   禁用/启用 vtordisp   disable/enable vtordisp
/Zp[n]   在 n 字节边界上包装结构   pack structs on n-byte boundary
/vm   指向成员的指针类型   type of pointers to members
/Za   禁用扩展(暗指 /Op)   disable extensions (implies /Op)
/noBool   禁用“bool”关键字   disable "bool" keyword
/Ze   启用扩展(默认)   enable extensions (default)


- 杂项 -  
/?, /help   打印此帮助消息   print this help message
/c   只编译,不链接   compile only, no link
/W   设置警告等级(默认 n=1)   set warning level (default n=1)
/H   最大化外部名称长度   max external name length
/J   默认 char 类型是 unsigned   default char type is unsigned
/nologo   取消显示版权消息   suppress copyright message
/WX   将警告视为错误   treat warnings as errors
/Tc   将文件编译为 .c   compile file as .c  
/Yc[file]   创建 .PCH 文件   create .PCH file
/Tp   将文件编译为 .cpp   compile file as .cpp  
/Yd   将调试信息放在每个 .OBJ 中   put debug info in every .OBJ
/TC   将所有文件编译为 .c   compile all files as .c  
/TP   将所有文件编译为 .cpp   compile all files as .cpp  
/Yu[file]   使用 .PCH 文件   use .PCH file
/V   设置版本字符串   set version string
/YX[file]   自动的 .PCH 文件 automatic .PCH
/w   禁用所有警告   disable all warnings
/Zm   最大内存分配(默认为 %)   max memory alloc (% of default)


-链接-  
/MD   与 MSVCRT.LIB 链接   link with MSVCRT.LIB
/MDd   与 MSVCRTD.LIB 调试库链接   link with MSVCRTD.LIB debug lib
/ML   与 LIBC.LIB 链接   link with LIBC.LIB
/MLd   与 LIBCD.LIB 调试库链接   link with LIBCD.LIB debug lib
/MT   与 LIBCMT.LIB 链接   link with LIBCMT.LIB  
/MTd   与 LIBCMTD.LIB 调试库链接   link with LIBCMTD.LIB debug lib
/LD   创建 .DLL   Create .DLL  
/F   设置堆栈大小   set stack size
/LDd   创建 .DLL 调试库   Create .DLL debug libary
/link   [链接器选项和库]   [linker options and libraries]
避开SM30维护视图的坑:自动更新字段+日志记录的5个关键配置步骤 本文深入解析了SAP ABAP开发中SM30维护视图的深度定制,聚焦于实现自动更新字段与日志记录功能。文章详细阐述了从SE54配置起点到核心编码的5个关键步骤,重点讲解了如何利用事件驱动模型(如05创建事件和01保存前事件)安全操作动态数据结构,并提供了避免常见陷阱的实用技巧,帮助开发者构建稳定可靠的自动化维护机制。 阅读详情

相关推荐

python代码爬取大众点评评论!直接copy就可以运行!

python代码爬取大众点评评论!直接copy就可以运行!

QiuQiRuQin的博客 1万+

VC编译优化设置

VC- Project Setting-Debug-Project Option语法解释-优化-  /O1 最小化空间 minimize space /Op[-] 改善浮点数一致性 improve floating-pt consistency /O2 最大化速度 maximize speed /Os  优选代码空间  favor code space /Oa 假设没有别名 assume no

C++、.NET、WPF、Android 2569

抖音用户评论和ID的采集方法

随着5G时代的普及,各大运营商的套餐纷纷推出,使得流量成本进一步降低。同时5G线路高宽带、低延迟的技术特性和手机普及,让视频用户访问量快速增加。 由于大量的视频工具和拍摄APP的提供,让短视频的拍摄、制作包括发行都变得更加简单便捷,越来越多的普通人可以投入视频创作,创造了更丰富的互联网内容,视频作者从视频推广中能获取粉丝和推广收益。 目前抖音就是目前最重要的短视频平台之一,要及时获取上面的用户评论和ID,需要结合爬虫代理实现采集方案,下面的代码就能快速采集相关信息: package htmlunit; i

ssbt_2020的博客 6787

VC的编译优化

编写的程序在Release版本碰到了问题,跟踪下去发现原因是函数的调用顺序不符合预期:例如int bbc1 = addULong1(10) + addString1("asdf"); 竟然addString1首先被调用——VC怎么能如此改变函数调用顺序呢?!如果删掉前面的int bbc1 =,又变成首先调用addULong1了;最有意思的是新建了一个工程,两组完全一样实现但是不同名的函数,addU

笔记本+学习园 1696

uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available. MDK5.37安装ARM_Compiler_5

MDK5.37安装ARM_Compiler_5 最后一个AC5编译器,从MDK5.37开始,不再默认安装,需要独立安装 ARMCompiler_506_Windows_x86_b960.zip (80.94MB) 否则使用AC5编译代码报错如下: Build started: Project: Project *** Target 'STM3210C_EVAL' uses ARM-Compiler 'Default Compiler Version 5' which is not available. *

mowwwcom的专栏 2万+

2023电赛B题实战解析:基于立创天空星开发板的同轴线缆长度与负载测量系统

本文详细解析了2023年全国大学生电子设计竞赛B题的实战方案,重点介绍了基于立创EDA天空星开发板(STM32F103)的同轴线缆长度与负载测量系统。文章深入剖析了两种核心测量方案,并推荐了更稳定易实现的NE555测电容法,提供了从硬件选型、电路设计到软件编程、参数标定的完整“施工图”,实测精度可达厘米级和皮法级,为电赛复现与高精度测量学习提供了清晰指导。

weixin_36303305的博客 232

VS2010调试之“编辑并继续”

程序的调试是任何一个程序必做的“功课”,当然在调试的过程中肯定会或多或少的遇到一些问题。如果每次关掉,修改,然后在启动,浪费不少时间和经历,尤其是在不确定的情况下尝试修改,启动的次数会更多。如果你要调试的系统太大,做优化有关“股票”软件计算算法的那样,光初始化就需要5分钟左右,无疑是个晴天霹雳,估计没几个人想去调试它。 如果在调试的过程中,可以修改代码,那就可以节省很多时间了。VS2010提...

yangzhiyong77 572

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 1001

C++ 优化级别、release、debug和运行速度之间的关系

C++ 优化级别、release、debug和运行速度之间的关系

在云端写诗,在泥里生活 5212

Open3D 计算点云配准的旋转和平移误差

通过计算旋转误差和平移误差来量化配准结果与真实变换之间的偏差。

点云侠的博客 251

015、架构_配置文件_管理节点(proxymanager.ini)

该配置文件中的参数在后台配置,两种生效方式:*所有参数重启生效。*部分参数可以使用工具dbtool动态生效。动态生效命令为:dbtool-pm-load-config。配置文件“proxymanager.ini”用于设置元数据管理模块的信息。文件路径为“~/etc”。配置文件“proxymanager.ini”是普通的文本文件。默认值proxymanager-alarmconfutf8.txt。配置错误或不配置,PM无法连接MDS,无法服务。获取元数据失败超时处理时间。异常时请求启动对等回滚。

Oracle/MySQL 到 国产信创数据库|迁移 · 调优 · 信创替换 329

VC编译选项 设置

在vc中debug版本中包含了很多调试信息,而release版本则是发布版,而这些信息都在编译开关中体现出来了。编译器的编译选项有速度优先和代码最小等选项,可以调节。还有其他信息。vc可以可以通过Settings -->Project-->C/C++-->Customize来设置这个编译开关,快捷键(ALT+F7)具体体现如下: /C:在预处理输出中保留注释语句 /c:只编译,不连接,

miyunhong的专栏 5681

2025年最新雷电模拟器9.22安装Magisk面具和LSPosed框架完整图文教程 文章末尾附所需软件下载

操作环境:雷电模拟器9.0.22 虚拟系统版本android 91、设置-其他设置-Root权限-开启2、设置-性能设置-System.vmdk可写入3、安装Magisk-18a0b94a-delta(25205).apk,运行并给予root权限4、选择右上角安装弹出“允许“magisk Delta”访问您设备上的照片、媒体内容和文件吗?“选择允许,然后结束magisk进程。5、从新运行magisk选择右上角安装-选择修补boot镜像中的vbmeta和安装到Recovery。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7102

VC编译连接选项详解

大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢?   VC的处理流程,大致分为两步:编译和连接。源文件通过编译生成了.obj文件;所有.obj文件和.lib文件通过连接生成.

haitian99的专栏 868

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC编译选项(转载)

VC编译选项 csdnb3a [原作] 关键字 VC编译选项 出处 -优化- /O1 最小化空间 minimize space /Op[-] 改善浮点数一致性 improve floating-pt consistency /O2 最大化速度 maximize speed /Os 优选代码空间 favor code space /Oa 假设没有别名 assume no aliasing /Ot 优

酷狗⊙_⊙刀刀的专栏 973

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VC编译器参数与选项详解

<br />一、关于命令行参数:<br /> cl.exe的功能是将源代码文件编译为可提供链接器使用的obj对象文件。cl.exe命令行参数形式如下:<br />CL (option...) file... [option | file]... [lib...] [@command-file] [/link link-opt...]<br />各命令行参数的意义如下 :<br />1、option<br />命令行中的"option"是指一个或多个编译选项。在指定选项时,需要在选项前加正斜杠(/)或一个短划

oathevil的专栏 4083

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC编译器配置及编译选项

VC编译器配置及编译选项 2011年08月04日   大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于...

yp122yp 132

vc编译选项

关键字 VC编译选项 出处 -优化- /O1 最小化空间 minimize space /Op[-] 改善浮点数一致性 improve floating-pt consistency /O2 最大化速度 maximize speed /Os 优选代码空间 favor code space /Oa 假设没有别名 assume no aliasing /Ot 优选代码速度 favor code spe

天蓝的专栏 889

vc 编译选项

tbw

princess9的专栏 381

vc 编译连接选项

vc 编译连接选项        大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能

木头人专栏 741
上一篇: fatal error C1853 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
下一篇: 我们的幸福
UU_Yang
博客等级 码龄23年 926粉丝 213原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值