在VC下面,有4个参数是跟静态/动态编译有关的。    /MD  /MDd  /MT  /MTd

其中, MT , MTd可以认为是静态编译。也就是说,设置成MT, MTd后编译出来的*.exe程序在运行时是带了符号的。而MD MDd是不带符号的。后面的小写的d表示是否允许调试,允许调试的含义是在编译这个程序的同时把调试信息(函数名、位置、变量信息)加到输出程序里了,使得该程序可以被debug断点跟踪。 这个相当于 Linux下的-g选项。

如果以MD MDd编译,则你的程序不能在别人的机器上运行,除非别人的机器先安装了所依赖的库(又叫runtime dll 运行时库),即以下几个文件:

msvcm90.dll

msvcp90.dll

msvcr90.dll

Microsoft.VC90.CRT.manifest

注意那个manifest也是必须的,错了也不行。

以MT, MTd编译的程序是不需要这些runtime dll的。不过如果你在程序中调用了其他第3方dll,而那些dll还是要附上的。进一步的,如果那些dll是以MD编译的话,你还是要把上术runtime dll安装上(因为你依赖的dll又依赖了runtime dll)。不过正常情况下发布的dll应该是MT编译的,所以不用担心人家的dll有什么问题,把自己的程序编好再说。

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2014-06/103105.htm

/MD /MDd /MT /MTd相关推荐

  1. vs编译c语言停止工作运行库mt,vc++编译时运行库选择(/MT/MTd/MD/MDd)

    vc++编译时运行库选择(/MT/MTd/MD/MDd) vc++编译时运行库选择(/MT./MTd./MD./MDd) 在vs中,项目属性 ->C/C++ ->代码生成 ->运行库 ...

  2. VC调试选项说明:md /mdd /ml /mt/mtd

    VC调试选项说明:md /mdd /ml /mt/mtd 1. VC编译选项 多线程                             (/MT) 多线程调试                   ...

  3. /MD 与 /MT、/MTD与/MDD的区别

    VS在 属性页的 C/C++ -> Code Generation -> Runtime Library 一项中总共有四个选项 /MD 与 /MT./MTD与/MDD,它们分别有什么区别? ...

  4. VC编译选项 /ML /MLd /MT /MTd /MD /MDd之间的区别

    VC编译选项 /ML /MLd /MT /MTd /MD /MDd之间的区别 VC编译选项 多线程(/MT) 多线程调试(/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd) C ...

  5. 一文带你弄懂Visual Studio:运行时库及MT/MTD、MD/MDD

    一文带你弄懂Visual Studio:运行时库及MT/MTD.MD/MDD 引子 什么是Runtime Library? Runtime Library和运行库 MT MTD MD MDD的关系 静 ...

  6. CMake设置MSVC工程MT/MTd/MD/MDd

    文章目录 0. 前言 1. 如何设置 1.1 CMakeLists代码 1.2 要点1:POLICY 1.3 要点2:set_property 0. 前言 在MSVC工程上右键->属性,找到配置 ...

  7. /MD与/MT、/MTD与/MDD的区别

    /MD 使应用程序使用运行时库的多线程并特定于DLL 的版本.定义 _MT 和 _DLL,并使编译器将库名 MSVCRT.lib 放入 .obj文件中.用此选项编译的应用程序静态链接到MSVCRT.l ...

  8. VS 编译时 /MD 与 /MT、/MTD与/MDD的区别

    VS在 属性页的 C/C++ -> Code Generation -> Runtime Library 一项中总共有四个选项 /MD 与 /MT./MTD与/MDD,它们分别有什么区别? ...

  9. vs MD /MDD /ML /MT /MTD的简单介绍

    1.MD /MDD /ML /MT /MTD的简单介绍 在编译ATL工程后,生成的dll在本电脑上能用,在别人的电脑上不能用.通过Depends工具分析一下,原来是编译选项没有选对,别的电脑上没有我生 ...

最新文章

  1. 这个比肩ImageNet的数据集遭MIT紧急下架,原因令人愤怒
  2. BM2 链表内指定区间反转
  3. affiliate的使用方式
  4. HDU - 5573 Binary Tree(思维+构造+二进制)
  5. DocumentNavigator是什么东东?
  6. Ubuntu下安装配置JDK
  7. Redis+Twemproxy安装与使用
  8. Unity3d高频率面试题目(选择题)
  9. 大牛用emacs还是vim_Emacs,Vim还是其他?
  10. java byte(字节_Java字节序,java整型数与网络字节序 byte[] 数组转换关系(ByteArrayOutpu......
  11. 如何定义适配器adapter类_设计模式22-Adapter(适配器)模式-组件接口适配
  12. 一页纸项目管理图书和简单模板
  13. 全国地区对应身份证号码值关系--身份证号前2位
  14. java 常量定义_java常量的定义
  15. 配置电脑计算机从哪几个,电脑硬件配置_电脑硬件配置有哪些
  16. 良品铺子天猫618爆卖300万个手撕面包,还用数据改造线下
  17. tp6使用workman实现定时任务
  18. python:爬取租房100页数据
  19. 汇编中的通用基础寄存器ax,bx,cx,dx等的含意及作用解释
  20. 纯净版Win10系统重装教程(超详细)

热门文章

  1. matlab中图像边缘提取,Matlab图像处理(五)——图像边缘提取
  2. 高校学生使用计算机软件,高校计算机运用软件教学
  3. 使用SuperMap iDesktopX数据迁移工具迁移地图文档和符号
  4. TCP的头部格式,详细信息都在这
  5. 使用Scribus进行开源桌面发布
  6. 打印1-100之间所有的质数
  7. 在线音频mp3、视频mp4测试地址
  8. oracle如果不存在则建分区,Oracle建分区表
  9. ジェイド / Jade
  10. 认识无线网络之Wi-Fi