对于MSVC9 Win32项目,以下选项显示在配置属性-> C/C++ ->代码生成->运行时库下:
/MT、/MTd、/MD、/MDd
对于DLL应该使用/MTd,对于静态库应该使用/MDd,这是正确的吗?
谢谢。
发布于 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。
https://stackoverflow.com/questions/6799237
复制相似问题