visual studio-VS 2013的静态库编译,为什么release比debug版本还大?

问题描述

VS 2013的静态库编译,为什么release比debug版本还大?

如题,很奇怪,包括从git下载了开源的项目,里面默认建好的项目也是如此,release比debug的还大?咋回事?

解决方案

一般来说我们总是觉得debug版要大一些,因为它有调试符号。但是也不一定如此,release版可能因为代码优化的关系,产生多个代码路径(比如说,同样的代码,编译器可能产生3份,一份基础版本,一份对intel优化,一份对amd优化,运行的时候选择不同的路径)
或者,对一些函数内联展开,这样也会造成代码变大。

解决方案二:

理论上Release要比Debug小,因为Debug中含有很多调试信息,Release大,要对比一下两个工程属性设置,是不是link了一些不同的库,或编译选项等导致文件反而大了

解决方案三:

release版本的是不是静态编译的?

解决方案四:

vs中debug和release版本的同时编译方法
Debug 版本 vs Release版本
Debug 版本 vs Release版本
----------------------

时间: 2024-08-29 05:28:41

visual studio-VS 2013的静态库编译,为什么release比debug版本还大?的相关文章

使用Visual Studio 2010/2013编译V8引擎步骤分享_C 语言

使用Visual Studio 2013编译V8引擎 复制代码 代码如下: 准备工作,安装Python2.x,git,svn: Git: http://msysgit.github.io SVN:http://www.sliksvn.com/en/download Python:https://www.python.org/downloads/ 第一步,获取V8源码: https://github.com/v8/v8-git-mirror 第二步,获取cygwin,放到V8源码下的third_p

visual studio 2010怎么用keil c51编译?(网上的教程不太懂,初学者)

问题描述 visual studio 2010怎么用keil c51编译?(网上的教程不太懂,初学者) 我看了一些网上的教程,但是有的不懂,所以很久都没有成功.望指点!十分感谢! 解决方案 keil c51有一个workbench,外观和VC++一样,直接就可以用.

Visual Studio 2010/2013 查看DLL接口(函数)

1. "应用程序" Visual Studio 2010/2013 的Visual Studio Tools文件夹中打开Visual Studio Command Prompt 命令提示窗口 2. dumpbin /exports c:\...\**.dll     (文件完整路径)

如何将内核静态库编译连接到驱动程序中去【转】

转自:http://blog.csdn.net/ganjianfeng2003/article/details/8089551 如何将内核静态库编译连接到驱动程序中去 2010-12-07 08:27 331人阅读 评论(1) 收藏 举报 http://blog.chinaunix.net/u2/61663/showart_2404744.html     刚上邮箱的时候发现一位网友向我询问这个问题,同时发送了一个链接给我了. 上去一看,上面还留有我以前同样的提问,看看时间,都几年前在别人的帖子

关于android studio 导出jar包时遇到的问题--release、debug模式

问题描述 关于android studio 导出jar包时遇到的问题--release.debug模式 我的工作需要在把自己做的一个项目做成sdk形式供他人使用,在网上参考了一篇博文后却遇到了如下问题.在我的 module目录的build/intermediates/bundles/路径下只有debug文件夹,没有对应的release,所以无法按步骤进行下去.参考博文:android studio 使用gradle 导出jar包,并打包assets目录下面贴上一张Android studio工程

带你玩转Visual Studio——调用约定与(动态)库

上一篇文章带你玩转Visual Studio--调用约定__cdecl.__stdcall和__fastcall中已经讲述了__cdecl.__stdcall和__fastcall几种调用约定的主要区别.这一章将进一步深入了解不同调用约定对编译后函数修饰名的影响,及调用约定对库函数的影响. VS设置默认的调用约定 上一章已经讲了,C/C++默认的调用约定是__cdecl,那能不能修改这个默认的调用约定呢?答案是肯定的.假设你有一个工程名叫VisualStudio,你想让这个工程下的所有函数默认都

visual studio 2012-中断或退出正在编译运行的程序

问题描述 中断或退出正在编译运行的程序 visual studio 2012怎样中断或退出正在编译运行的程序? 解决方案 正在编译时,"生成"菜单里有个"取消"的菜单项,点它可以中止编译.或者按Ctrl+Break(Pause) 调试运行时,按 Shift+F5 停止运行 这是在2008里面的操作,在2012中估计也会差不多 解决方案二: 工具栏上有"停止调试"按钮 "全部中断"按钮ctrl+alt+break "调

Visual Studio 2010崩溃重启问题(源文件编译崩溃)_实用技巧

1周前Visual Studio 2010突然出现崩溃现象.在源文件修改只要一编译,马上就崩溃,而且还不弹出任何异常窗口,严重影响软件开发工作. google了无数解决方案 用下面网站上的办法也不奏效: 1)http://blog.sina.com.cn/s/blog_68cb7e090101963d.html For 32-bit operating systems, run the following command: regsvr32 "c:\Program Files\Internet

Visual Studio Community 2013 with Update 4安装不了?

问题描述 WIN732位的,在线安装,以前从没安装过,试了好几次都是这个错误.也试过网上的方法,比如更新.NETFramework等等,都没成功.日志最后一行:[12C4:06F4][2015-03-27T09:05:36]i399:Applycomplete,result:0x80070643,restart:None,barequestedrestart:No 解决方案