/MD /MT

1.将 /MD 选项 改为/MT 选项,最终的可执行文件就不会包含对那些VC 运行时的DLL的引用了。

2

编译选项 包含 静态链接的Lib 说明
/M D _MT.DLL MSVCRT.Lib   多线程,Release,Dll版本的运行时库
/MDd _DEBUG._MT_DLL MSVCRTD.Lib 多线程,Debug,Dll版本的运行时库
/MT _MT LIBCMT.Lib 多线程,Release版本的运行时库
/MTD _DEBUG._MT  LIBCMTD.Lib 多线程,Debug版本的运行时库

3.简单的说 

     /MD ,表示运行时库由操作系统提供一个DLL,程序里不集成。

     /MT,表示运行时库由程序集成

     /d表示有没有调试版本

4.为什么选择/MD,不选/MT?

   1)程序就不需要静态链接运行时库,可以减小软件的大小。

   2)所有的模块都采用/MD,使用同一个堆,不存在A堆申请,B堆释放的问题。

5.为什么选择/MT,不选择/MD?

  1)有些系统可能没有程序所需版本的运行时库,程序必须把运行时库静态的连接上。

  2)减少模块对外界的依赖。

6.多个模块,必须选择相同的运行时库。

7.选择/MT需解决堆空间的释放问题。

你可能感兴趣的:(VC,库)