VC中使用静态链接库 之 /MD /MT 用法

要被批评了,好久没写了。主要是觉得没什么可写的。今天分享一下如何使用/MT和/MD在VC下编译C/C++程序
/MT 的意思就是使用微软的多线程静态链接库 
/MD 的意思就是使用微软的多线程动态链接库
在VS中的工程选项里面C/C++可以设置/MT /MD和调试版本/MTd /MDd
当然更高级一点直接在makefile或者命令行的cl的编译参数中加上/MT或者/MD也可以达到一样的效果,需要注意的是,只能有一个,不能同时生效的
接下来,用/MT编译没有依赖msvcrt.dll的应用程序去了,发现链接的时候报了成百上千个符号重复错误,这个情况只是在偶尔会发生,主要可能是因为配置混乱。
修正这个问题也很简单,常在命令行下自己敲makefile的人很清楚,在link中加上/NODEFAULTLIB:msvcrt.lib msvcprt.lib忽略原来的默认动态连接库,指定让编译器链接libcmt.lib和libcpmt.lib(在VS下用C语言的同学无视后面这个库哈,那个是C++的)就完美的解决了。
在工程属性里面的Link中的忽略指定默认库加上msvcrt.lib,然后附加库中加上libcmt.lib和libcpmt.lib是一样的效果.这样做简单的工程是没有问题的,最好还是找一个干净的编译环境.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值