是什么通过调试构建和发布版本,区别和用途的意思 [英] what does mean by debug build and release build, difference and uses

查看:420
本文介绍了是什么通过调试构建和发布版本,区别和用途的意思的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:结果
  

我想知道是什么用调试构建和发布版本的意思。而这也正是两者之间的区别。

i want to know what does mean by debug build and release build. and what is difference between both.

哪一个,我应该使用(我的意思是这是为每一个合适的条件下)。
而这实际上建我使用的知道,如果让在Visual Studio中简单的C ++项目。[如果我不改变任何项目设置]

which one should i used ( i mean which are the suitable conditions for each one ). and which build actually i am using know if a make simple c++ project in visual studio.[if i does not change any projects settings ]

我问这个,因为我尽量让GUI使用wxwidges 2.9.4,他们给需要加入的.LIB不同的案例。这些都是

i am asking this because i try to make gui using wxwidges 2.9.4 and they give different case of adding required .lib. these are

ANSI发布静态

调试ANSI静态

发布的Uni code静态

调试统一code静态

请把详细的解答。

推荐答案

调试构建和发布构建都只是名字。他们没有任何意义。

Debug build and release build are just names. They don't mean anything.

根据您的应用程序,你可以在一个,两个或两个以上建立它
不同的方法,使用编译器和连接器的不同组合
选项​​。的的应用程序只应建立一个版本:
你测试和调试正是客户端使用相同的程序。在
某些情况下,可能更实际使用两种不同的构建:
总体而言,客户端code需要优化,性能方面的原因,但
调试时你不想要的优化。再有这样的情况
其中,完全调试(即验证迭代器等)可能会导致code
那就是即使是算法调试太慢了,所以你必须构建
与完整的调试检查,一个没有优化,但没有迭代​​器
调试,以及一个与优化。

Depending on your application, you may build it in one, two or more different ways, using different combinations of compiler and linker options. Most applications should only be build in a single version: you test and debug exactly the same program that the clients use. In some cases, it may be more practical to use two different builds: overall, client code needs optimization, for performance reasons, but you don't want optimization when debugging. And then there are cases where full debugging (i.e. iterator validation, etc.) may result in code that is too slow even for algorithm debugging, so you'll have a build with full debugging checks, one with no optimization, but no iterator debugging, and one with optimization.

您在应用程序启动任何时候,你必须决定什么选择你
需要,并建立相应的基础之上。你可以打电话给他们什么
你想要的。

Anytime you start on an application, you have to decide what options you need, and create the corresponding builds. You can call them whatever you want.

至于外部库(如wxWidgets的):所有的编译器有
当使用一些不兼容的不同选项。所以人们谁
提供库(除了以源代码形式)已提供数
不同的版本,这取决于若干问题:

With regards to external libraries (like wxwidgets): all compilers have some incompatibilities when different options are used. So people who deliver libraries (other than in source form) have to provide several different versions, depending on a number of issues:


  • 发布与调试:发行版将已编译的一
    一套或多或少标准的优化选项(没有迭代器
    调试);调试版本没有优化,并与迭代器
    调试。无论迭代器调试present与否是一回事
    通常破坏二进制兼容性。库供应商应该
    文档哪些选项是与每个版本兼容。

  • release vs. debug: the release version will have been compiled with a set of more or less standard optimization options (and no iterator debugging); the debug version without optimization, and with iterator debugging. Whether iterator debugging is present or not is one thing which typically breaks binary compatibility. The library vendor should document which options are compatible with each version.

ANSI对比的Uni code:这可能意味着窄字符 VS宽 wchar_t的
为字符数据。使用哪一方对应于您在使用什么
你的申请。 (请注意,这两者之间的区别是多
以上只是一些编译器开关。你经常需要从根本上
不同的code,在所有情况下正确处理统一code是远离
不重要的;从而真正实现统一支持的应用程序code必须了解
之类的东西组成的字符或双向的写作。)

ANSI vs. Unicode: this probably means narrow char vs wide wchar_t for character data. Use which ever one corresponds to what you use in your application. (Note that the difference between these two is much more than just some compiler switches. You often need radically different code, and handling Unicode correctly in all cases is far from trivial; an application which truly supports Unicode must be aware of things like composing characters or bidirectional writing.)

静态还是动态的:这决定了图书馆是如何相连,
加载。通常情况下,你会想要静,至少如果你上部署数
您在其它机器比你开发它的一个应用程序。但
这也取决于许可证的问题:如果你需要为每个许可证
机器所在的库部署,它可能会更有意义使用
动态。

static vs. dynamic: this determines how the library is linked and loaded. Usually, you'll want static, at least if you count on deploying your application on other machines than the one you develop it on. But this also depends on licensing issues: if you need a license for each machine where the library is deployed, it might make more sense to use dynamic.

这篇关于是什么通过调试构建和发布版本,区别和用途的意思的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆