VS设置中的MT(d)与MD(d)
来源:互联网 发布:淘宝清洗后钱该怎么办 编辑:程序博客网 时间:2024/05/20 17:41
Windows编程中经常要链接多个lib库,又是会报libcmt.lib(libcmtd.lib)与msvcrt.lib(msvcrtd.lib)的链接冲突。
其原因是,在同一个项目中,所有的源文件必须链接相同的C运行时库。如果某一文件用了Multithreaded DLL版本,而其他文件用了Single-Threaded或者Multithreaded版本的库,也就是说用了不同的库,就会导致这个警告的出现。
不同运行时库选项代表的 C运行时库如下,其中M带代表多线程,D代表使用DLL,d代表Debug
版 本类 型使用的library被忽略的libraryR Release单线程libc.liblibcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib多线程 /MTlibcmt.liblibc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib使用DLL的多线程 /MDmsvcrt.liblibc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.libD Debug单线程libcd.liblibc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib多线程 /MDdlibcmtd.liblibc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib使用DLL的多线程 /MDmsvcrtd.liblibc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib
解决冲突的办法:
1、所以库使用同样的运行时库选项
2、忽略特定库
例如,libcmt.lib冲突,在有"LIBCMT"冲突错误存在,在“配置属性-->链接器-->输入-->忽略特定库”中把libcmt.lib添加进去或者在“配置属性-->链接器-->命令运”的“附加选项”添加上/NODEFAULTLIB:libcmt.lib
libcmtd 这个库有时候不能忽略,忽略后会有不能解析的外部符号错误
其实有个方便的方法 链接时加入参数 /FORCE:MULTIPLE
0 0
- VS设置中的MT(d)与MD(d)
- VS中的 MD/MT设置
- VS中的 MD/MT设置
- VS中的 MD/MT设置
- VS中的 MD/MT设置
- VS中的 MD/MT设置
- VS中的 MD/MT设置
- vs环境MT/MD设置
- Visual Studio 2015 中关于运行时库的设置 /MD[d]、/MT[d]、/LD[d]
- VS中MD/MT的设置
- Windows编程 MD(d)、MT(d)编译选项的区别
- Windows编程 MD(d)、MT(d)编译选项的区别
- Windows编程 MD(d)、MT(d)编译选项的区别
- MD(d)、MT(d)编译选项的区别
- Windows编程 MD(d)、MT(d)编译选项的区别 .
- Windows编程 MD(d)、MT(d)编译选项的区别
- Windows编程MD(d)、MT(d)编译选项的区别
- VS编译选项中的MT,MTD,MD,MDD
- 一些笔记
- 果然还是不够努力是吗?
- 【心灵感悟】—看【人生就是一次列车的旅行】PPT之感
- 八、深拷贝和浅拷贝
- 体力耗费
- VS设置中的MT(d)与MD(d)
- 图结构练习——最短路径
- php 入门基础 一
- 【Leetcode】Find Peak Element
- Identifiers
- wget
- 基友记
- 救基友记3
- Ubiquitous Religions