/MTd /MD /MDd

news/2024/9/8 5:46:50/
在编译 ATL 工程后,生成的 dll 在本电脑上能用,在别人的电脑上不能用。通过 Depends 工具分析一下,原来是编译选项没有选对,别的电脑上没有我生成的 dll 需要的基础 dll 文件,选成静态链接库就好了。故而总结一下几个编译选项,主要来自于参考 1 中链接网址;当然,更详细的介绍可以参见参考 2 microsoft 网址上介绍。

1VC编译选项 多线程(/MT)

多线程调试(/MTd)

多线程 DLL (/MD)

多线程调试 DLL (/MDd)

2C 运行时库                        库文件

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 版本。

Warning:不要混合使用运行时库的静态版本和动态版本。在一个进程中有多个运行时库副本会导致问题,因为副本中的静态数据不与其他副本共享。链接器禁止在 .exe 文件内部既使用静态版本又使用动态版本链接,但仍可以使用运行时库的两个(或更多)副本。例如,当与用动态 (DLL) 版本的运行时库链接的.exe文件一起使用时,用静态(非DLL)版本的运行时库链接的动态链接库可能导致问题。(还应该避免在一个进程中混合使用这些库的调试版本和非调试版本)。

参考:

[1] http://www.cnblogs.com/eddyshn/archive/2009/11/23/1608823.html

[2] http://msdn.microsoft.com/en-us/library/aa278396%28VS.60%29.aspx


http://www.ppmy.cn/news/188824.html

相关文章

SDTM--study data tabulation model implementation guide:human clinical trails(临床研究数据模型实施指南)3.4

Fundamental of the SDTM(SDTM原理) observations and variables(观察结果与变量) SDTM build by observations and variables, each observation can be describe by series of variables,each variable can be classified according to t…

mtd设备操作、jffs2

安装mtd相关命令 手动安装mtd-utils,根据系统自行选择 mtd交叉编译:https://blog.csdn.net/zhangxuechao_/article/details/52124424 系统flash操作命令 # cat /proc/mtd dev: size erasesize name mtd0: 00080000 00020000 "boot" m…

mtd

1.Linux-MTD Subsystem FLASH在嵌入式系统中是必不可少的,它是bootloader、linux内核和文件系统的最佳载体。在Linux内核中引入了MTD子系统为NOR FLASH和NAND FLASH设备提供统一的接口,从而使得FLASH驱动的设计大为简化。 在引入MTD后Linux系统中FLAS…

MDFN-2

这个之前也发过哦... 深度特征学习方案将重点从具有细节的具体特征转移到具有语义信息的抽象特征。它通过构建多尺度深度特征学习网络 (MDFN) 不仅考虑单个对象和局部上下文,还考虑它们之间的关系。多尺度特征学习才是目标检测精髓 上一回的结论是浅层和深层的特征…

.md文件的打开

今天终于知道.md文件是markdown格式的了, windows下可以安装markdownpad来打开md文件: http://blog.csdn.net/github_35160620/article/details/52158604 ubuntu下则可安装retext,查看时 retext xxx.md即可 例子: ubuntu下&…

什么是MDM

MDM或移动设备管理是一种软件应用程序,用于管理企业中的终端,如笔记本电脑、智能手机、平板电脑等。随着越来越多的员工使用这些设备,各种形式和规模的企业现在都转向移动设备管理,以增强数据安全性并提高生产力。 MDM是什么意思…

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

1、MD /MDD /ML /MT /MTD的简单介绍 在编译ATL工程后,生成的dll在本电脑上能用,在别人的电脑上不能用。通过Depends工具分析一下,原来是编译选项没有选对,别的电脑上没有我生成的dll需要的基础dll文件,选成静态链接库就…

.md文件是什么?.md如何打开?怎么打开?

可能有些朋友会看到以md为结尾的文件,但是不知道用什么打开。下面就来说一下.md文件如何打开,markdown文件用什么打开。 1、首先来普及一下什么是md文件, md全称markdown,markdown也是一种标记语言。   2、md文件其实可以用常用…

02 MDTD

Complexity of Testing Software the term correctness has no meaningInstead considering reliability, safety, maintainability, security, and efficiency 关于正确性 更多是用来描述古典科学 数学模型正确。。。。 Better viewpoint: a relative term — program P is…

【STL】stack、queue基本使用和模拟实现

目录 前言 stack 接口介绍 模拟实现 queue 接口介绍 模拟实现 没有迭代器 deque介绍 前言 stack 和 queue 本质上是一种容器配接器,就像我们平时充电时使用的电源适配器,能够将电压转换成设备能够接受的程度。 其通过封装特定容器作为其底层…

基于springboot框架的电脑商城项目(五)

🎁🎁静态资源及sql文件分享 链接:https://pan.baidu.com/s/1X-yjmQcPD3PqS21x0HplNA?pwd23gr 提取码:23gr 收货地址列表展示功能及设置默认收货地址功能的实现 收货地址列表展示(一)收货地址列表展示&…

机器人布里茨哪个皮肤好看_LOL全英雄皮肤盘点推荐D32:蒸汽机器人布里茨 苹果机器人...

LOL全英雄皮肤盘点推荐今天带来蒸汽机器人布里茨的苹果机器人。经常在节日半价的皮肤,q技能诡异的弹道让人非常难躲,模型很精致,而其他特效皮肤,轮椅使用率最高,不过特效上不如苹果。此外电玩的脑子感觉勾到人有一种让…

MacOS Big Sur 11.2.3 (20D91) with Clover 5131 and OC 0.6.7 and PE 三EFI分区原版DMG黑苹果镜像

MacOS Big Sur 11.2.3 (20D91) 原版 DMG 黑苹果镜像,基于 OpenCore-0.6.7 and Clover 5131制作。 2021 年 3 月 8 日苹果推送了macOS Big Sur 11.2.3,作为生产力工具,系统更新如此频繁,着实让然头大。这几次补充更新都是问题修复&…

D3 pie

https://github.com/d3/d3/blob/master/API.md#pies <script>svg d3.select(body).append(svg).attr("width",300).attr(height,300)data[["女生",43],["男生",57]]//设置pie布局转换器var pie d3.layout.pie().value((d)>d[1])//将数…

2D 23.2.23

2023.2.21 2D 平移属性&#xff1a;transform:translate(x,y)&#xff1b; 变换属性&#xff1a; transform:translate(x,y)&#xff1b;沿着x轴和y轴移动 transform:translateX(x)&#xff1b;沿着x轴移动 transform:translateY()&#xff1b;沿着y轴移动 取值&#xf…

dagre-d3 基于d3.js v4版本以上

dagre-d3 github 上没有文档介绍 看dagre.js的吧 基于d3.js v4以上 dagre.js github https://github.com/dagrejs/dagre/wiki dagre-d3 github https://github.com/dagrejs/dagre-d3/wiki 基于d3 v3 和 v4 的变化 https://github.com/dagrejs/dagre-d3/commit/ebbb84f03b…

macOS 12 Monterey Beta 3版

Mac 操作系统的下一版本将被称为 macOS Monterey。这里为您带来macOS Monterey测试版尝鲜下载&#xff01; 升级可以参考下方教程&#xff01; macOS 12 Monterey免费下载及升级安装教程 macOS Big Sur 12 安装教程 下载完成后打开&#xff0c;双击.pkg安装包运行即可检测到最…

d3.js:取代d3.mouse的d3.pointer

前言 今天在学习如何使用d3.js的事件处理函数过程中&#xff0c;发现d3.mouse和d3.event在浏览器报错不是函数&#xff0c;于是前往官方文档&#xff0c;发现这里两个函数已经在d3V6.0中删除了&#xff01;于是&#xff0c;我在往上查了好久&#xff0c;没有查到替代的函数&am…

MacOS Big Sur 11.3 (20E232) Cl 5133/OC 0.6.9/PE 三分区原版黑苹果镜像

今天苹果推送了最新的 macOS Big Sur 11.3 正式版系统更新&#xff0c;本次版本号为 20E232&#xff0c;苹果官方更新介绍&#xff0c;macOS Big Sur 11.3 新增对 AirTag 的支持&#xff0c;改进了可在搭载 M1 芯片的 Mac 上使用的 iPhone 和 iPad App&#xff0c;以及支持为情…

神舟q480s i5 d3黑苹果安装体验

家用笔记本是几年前的神舟q480s i5 d3 硬件配置情况如下&#xff1a; 这个机器跑win10十分的卡顿&#xff0c;一直以来只有下载文件挂机时候才会开他。去年疫情期间心血来潮给他装了黑苹果&#xff0c;但是因为机械硬盘有点卡&#xff0c;最后又格式化了&#xff0c;当时无线网…