md /mdd /ml /mt/mtd

From: http://www.cnblogs.com/eddyshn/archive/2009/11/23/1608823.html

VC编译选项

多线程(/MT)
多线程调试(/MTd)
多线程 DLL (/MD)
多线程调试 DLL (/MDd)
C 运行时库                        库文件
Single thread(static link) ML            libc.lib
Debug single thread(static link) MLd        libcd.lib
MultiThread(static link) MT            libcmt.lib
Debug multiThread(static link) MTd            libcmtd.lib
MultiThread(dynamic link) MD            msvert.lib
Debug multiThread(dynamic link) MDd        msvertd.lib
3. 各种 C 运行时库的区别
( 1 )静态链接的单线程库
静态链接的单线程库只能用于单线程的应用程序, C 运行时库的目标代码最终被编译在应用程序的二进制文件中。通过 /ML 编译选项可以设置 Visual C++ 使用静态链接的单线
程库。
( 2 )静态链接的多线程库
静态链接的多线程库的目标代码也最终被编译在应用程序的二进制文件中,但是它可以在多线程程序中使用。通过 /MT 编译选项可以设置 Visual C++ 使用静态链接的多线程库。
( 3 )动态链接的运行时库
动态链接的运行时库将所有的 C 库函数保存在一个单独的动态链接库 MSVCRTxx.DLL 中, MSVCRTxx.DLL 处理了多线程问题。使用 /MD 编译选项可以设置 Visual C++ 使用动态
链接的运行时库。
/MDd 、 /MLd 或 /MTd 选项使用 Debug runtime library( 调试版本的运行时刻函数库 ) ,与 /MD 、 /ML 或 /MT 分别对应。 Debug 版本的 Runtime Library 包含了调试信息
,并采用了一些保护机制以帮助发现错误,加强了对错误的检测,因此在运行性能方面比不上 Release 版本。
下面是msdn关于Visual C++ 编译器选项的说明:
这些选项选择单线程或多线程运行时例程,指示多线程模块是否为 DLL,并选择运行时库的发布版本或调试版本。
选项     说明
/MD     定义 _MT 和 _DLL 以便同时从标准 .h 文件中选择运行时例程的多线程特定版本和 DLL 特定版本。此选项还使编译器将库名 MSVCRT.lib 放入 .obj 文件中。
用此选项编译的应用程序静态链接到 MSVCRT.lib。该库提供允许链接器解析外部引用的代码层。实际工作代码包含在 MSVCR71.DLL 中,该库必须在运行时对于与 MSVCRT.lib 链
接的应用程序可用。
当在定义了 _STATIC_CPPLIB (/D_STATIC_CPPLIB) 的情况下使用 /MD 时,它将导致应用程序通过静态多线程标准 C++ 库 (libcpmt.lib) 而非动态版本 (msvcprt.lib) 进行链接
,同时仍通过 msvcrt.lib 动态链接到主 CRT。
/MDd     定义 _DEBUG、_MT 和 _DLL,以便从标准 .h 文件中选择运行时例程的调试多线程特定版本和 DLL 特定版本。它还使编译器将库名 MSVCRTD.lib 放入 .obj 文件中。
/ML     使编译器将库名 LIBC.lib 放入 .obj 文件中,以便链接器使用 LIBC.lib 解析外部符号。这是编译器的默认操作。LIBC.lib 不提供多线程支持。
/MLd     定义 _DEBUG 并使编译器将库名 LIBCD.lib 放入 .obj 文件中,以便链接器使用 LIBCD.lib 解析外部符号。LIBCD.lib 不提供多线程支持。
/MT     定义 _MT,以便从标准头 (.h) 文件中选择运行时例程的多线程特定版本。此选项还使编译器将库名 LIBCMT.lib 放入 .obj 文件中,以便链接器使用 LIBCMT.lib 解析
外部符号。创建多线程程序需要 /MT     或 /MD(或它们的调试等效选项 /MTd 或 /MDd)。
/MTd     定义 _DEBUG 和 _MT。定义 _MT 会导致从标准 .h 文件中选择运行时例程的多线程特定版本。此选项还使编译器将库名 LIBCMTD.lib 放入 .obj 文件中,以便链接器使
用 LIBCMTD.lib 解析外部符号。创    建多线程程序需要 /MTd 或 /MDd(或它们的非调试等效选项 /MT 或 MD)。
/LD     创建 DLL。
将 /DLL 选项传递到链接器。链接器查找 DllMain 函数,但并不需要该函数。如果没有编写 DllMain 函数,链接器将插入返回 TRUE 的 DllMain 函数。
链接 DLL 启动代码。
如果命令行上未指定导出 (.exp) 文件,则创建导入库 (.lib);将导入库链接到调用您的 DLL 的应用程序。
将 /Fe 解释为命名 DLL 而不是 .exe 文件;默认程序名成为基名称.dll 而不是基名称.exe。
如果还未显式指定 /M 选项之一,则将默认运行时库支持更改为 /MT。
/LDd     创建调试 DLL。定义 _DEBUG。
    警告   不要混合使用运行时库的静态版本和动态版本。在一个进程中有多个运行时库副本会导致问题,因为副本中的静态数据不与其他副本共享。链接器禁止在 .exe 文件内
部既使用静态版本又使用动态版本链接,但您仍可以使用运行时库的两个(或更多)副本。例如,当与用动态 (DLL) 版本的运行时库链接的 .exe 文件一起使用时,用静态(非
DLL)版本的运行时库链接的动态链接库可能导致问题。(还应该避免在一个进程中混合使用这些库的调试版本和非调试版本)。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[react] 在react中怎样改变组件状态,以及状态改变的过程是什么?

[react] 在react中怎样改变组件状态,以及状态改变的过程是什么? 使用this.setState改变组件的状态改变的过程中,React Fiber Reconciler遍历了整个Fiber Tree,得到了最新的DOM diff结果,并把这个结果应用到真实的DOM上…

web前端实战系列[1]——三列布局

1.代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta http-equiv"Cont…

[react] react是什么?它的主要特点是什么?

[react] react是什么&#xff1f;它的主要特点是什么&#xff1f; React是用于构建用户界面的库。 特点&#xff1a; 组件化,增强复用性数据到视图的单向绑定,更安全数据的单项传递流高性能个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff…

Unix整理笔记-vi简介-里程碑M8

1 vi是Unix/Linx工程师必备的 2 ~表示是未使用的行&#xff0c;如果某行不是以~开头&#xff0c;并且仍然是空白的&#xff0c;那么一定存在空格&#xff0c;制表符&#xff0c;换行符等 3 vi区别大小写 4 在vi中搜索文件&#xff0c;命令模式下&#xff1a;/yourword 5 如果进…

android Sqlite小记

1、android.database.sqlite.SQLiteException: near "": syntax error (code 1): 语法错误&#xff0c;如果你的报了这个错误,就好好看下你的sql语句吧 比如,下边这句&#xff1a;&#xff0c;如果你不注意&#xff0c;可能会觉得没错 1 ss "ss:42--56,10--11…

[react] 你用过react版本有哪些?

[react] 你用过react版本有哪些&#xff1f; react17.0.2 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Ext JS 4.1 RC1发布

下载地址&#xff1a;http://cdn.sencha.com/ext-4.1-rc1.zip Bugs Fixed for RC1Button EXTJSIV-5129 - Button does not adhere to width setting in IE9Charts EXTJSIV-4416 - Chart label misaligned on numeric x axisEXTJSIV-5459 - Setting markers to be hidden in ren…

修改linux默认启动级别(包括Ubuntu)

From: http://xinchibaobei.blog.163.com/blog/static/126392509200910101356215/ 说明&#xff1a;本文后半篇引用crazy365的文章&#xff0c;可能是大部分linux版本的设置方式&#xff0c;但在Ubuntu下不适用。 所以搜寻了Ubuntu下的修改方式&#xff0c;稍作整理放在前面…

iSensor APP 之 摄像头调试 OV3640 OV2640 MT9d112

iSensor app 非常适合调试各种摄像头&#xff0c;已测试通过的sensor有&#xff1a; l OV7670、OV7725、OV9650、OV9655、OV9653、OV5642、OV5640 l MT9T001、MT9M001、MT9P031 今天又测试了上述几款新的型号&#xff0c;之前并未用过。 OV3640 OV2640 MT9d112 先看OV2640&am…

[react-router] React-Router怎么获取URL的参数?

[react-router] React-Router怎么获取URL的参数&#xff1f; 通过params 类组件&#xff1a;在保证props能获取到路由信息的前提下&#xff08;如果不是直接嵌套在<Route/>下&#xff0c;需要使用withRouter的HOC&#xff09;&#xff0c;通过this.props.match.params获…

LINUX下查看CPU使用率的命令

From: http://www.cnblogs.com/Wen-Man/archive/2011/04/04/2373771.html 1.top 使用权限&#xff1a;所有使用者 使用方式&#xff1a;top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明&#xff1a;即时显示process的动态 d :改变显示的更新速度&#xff0c;或是在交…

ZFS 常见问题解答 及 ZFS Boot 问题探讨

首先我们来看一下上月Snow Leopard Server活动上Apple 对SUN ZFS发表的评论&#xff1a; 综观计算机业界的整个历史&#xff0c;这个行业往往推崇“奇思妙想”&#xff0c;原因在于它似乎喜欢给最新技术赋予近乎神奇的功效。ZFS&#xff08;Zettabyte File System&#xff09;常…

说一下output子句

Output子句日常灰常有用&#xff0c;而且用的地方也挺多&#xff0c;但是确好多时候被我们忽视&#xff0c;今天我就也简单扫盲一下这个语句的用法。 Output子句 返回受 INSERT、UPDATE、DELETE 或 MERGE 语句影响的各行中的信息&#xff0c;或返回基于受这些语句影响的各行的表…

[react] 在使用react过程中你都踩过哪些坑?你是怎么填坑的?

[react] 在使用react过程中你都踩过哪些坑&#xff1f;你是怎么填坑的&#xff1f; 组件不像Vue一样有(beforeRouteLeave, beforeRouteEnter)路由守卫Hooks中的闭包渲染问题 import { useState } from react;const Demo () > {const [count, setCount] useState(0);const…

查询优化器内核剖析第四篇:从一个实例看执行计划

查询优化器内核剖析第四篇&#xff1a;从一个实例看执行计划系列文章索引&#xff1a; 查询优化器内核剖析第一篇 查询优化器内核剖析第二篇&#xff1a;产生候选执行计划&执行计划成本估算 查询优化器内核剖析第三篇&#xff1a;查询的执行与计划的缓存 &…

linux 查看端口使用情况

From: http://blog.csdn.net/zwhfyy/article/details/3971523 -bash-3.00# netstat -tln netstat -tln 命令是用来查看linux的端口使用情况     /etc/init.d/vsftp start 是用来启动ftp端口~&#xff01;     看文件/etc/services     netstat     查看已经连接的…

POJ3764 The xor-longest Path(Trie树)

题目给一棵有边权的树&#xff0c;问树上任意两点路径上的边异或值最多是多少。 记录每个点u到根路径的异或值xor[u]&#xff0c;那么任意两点u、v路径的异或值就是xor[u]^xor[v]。 于是这个问题就变成了从n个数中任取两个数异或&#xff0c;求最大异或值&#xff0c;这是个经典…

[react] 说说react的生命周期有哪些?

[react] 说说react的生命周期有哪些&#xff1f; 装载阶段 组件第一次被渲染时的阶段&#xff0c;这一阶段相关的生命周期函数有&#xff1a; constructor componentWillMount render componentDidMount 更新阶段 如果组件中的 state 或者 props 发生了改变&#xff0c;React…

【python】os.getcwd和getcwdu

print os.getcwd(), type(os.getcwd()) print os.getcwdu(), type(os.getcwdu()) 结果如下&#xff1a; C:\Users\Administrator\PycharmProjects\mypython_1 <type str>C:\Users\Administrator\PycharmProjects\mypython_1 <type unicode> 可见&#xff0c;一个是…