首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dll与静态库(MSVC9 RunTime库选件)

Dll与静态库(MSVC9 RunTime库选件)
EN

Stack Overflow用户
提问于 2011-07-23 16:33:31
回答 1查看 2.3K关注 0票数 2

对于MSVC9 Win32项目,以下选项显示在配置属性-> C/C++ ->代码生成->运行时库下:

/MT、/MTd、/MD、/MDd

对于DLL应该使用/MTd,对于静态库应该使用/MDd,这是正确的吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-23 17:56:07

这里有两个问题在起作用。

首先,您需要选择CRT的Debug版本还是Release版本。调试版本具有特殊的检查和代码路径,旨在帮助您在编写应用程序时捕获错误。您不应该将它们用于应用程序的最终发布版本,因为它们会减慢应用程序的执行速度,而且它们不能自由地重新分发。

然后,您需要决定是要静态地链接运行时到您的应用程序,还是要从动态链接库使用它。静态链接允许您创建独立的EXE文件,而不依赖于任何DLL文件;它可以有效地将运行时代码编译为应用程序的二进制文件。这可以使部署变得更容易,但代价是无法利用对运行时DLL进行的安全性和其他更新。为了利用新的运行时更新,您必须重新编译您的应用程序。动态链接是Windows应用程序的典型(也是推荐的)路径。这意味着您的应用程序需要存在适当版本的CRT DLL才能运行,但它允许轻松更新运行时库,并意味着多个程序可以共享相同的代码,从而减小它们在磁盘上的大小。

因此,/MD意味着动态链接,而/MT意味着静态链接。每个选项后面的小写d表示使用的是运行时库的调试版本。

/MD =动态链接到CRT的发行(可再发行)版本

/MDd =动态链接到调试(不可再发行)版本的CRT

/MT =静态链接到CRT的发行(可再发行)版本

/MTd =静态链接到调试(不可再发行)版本的CRT

有关更多信息,请访问MSDN

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6799237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档