已经定义的错误 libcmtd.lib
来源:互联网 发布:手机用的中文编程软件 编辑:程序博客网 时间:2024/05/16 14:10
这个错误是微软设计错误,因此如果遇到这个错误,我们只能躲过这个链接错误。具体的办法就是将那个提示出错的库放到另外一个库的前面。另外选择不同的C函 数库,可能会引起这个错误。MS, C有两种C函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。另外一种是支持多线程 的:msvcrt.lib。如果一个工程里,这两种函数库混合使用,可能会引起这个错误。因此建议使用支持多线程的msvcrt.lib。
需要注意的是,当使用其他的库的时候最容易产生这种错误,例如boost和wxWindow使用/MD来编译的,也就是使用支持多线程的C函数库。这时候 如果自己的程序没有指明/MD的话,就会提示两种C函数冲突,并且还有LNK2005错误。因此如果使用boost,wxWindow的话,需要指明 /MD。
msvcrt.lib是VC中的Multithreaded DLL 版本的C运行时库,而libcmt.lib是Multithreaded的运行时 库。在同一个项目中,所有的源文件必须链接相同的C运行时库。如果某一文件用了Multithreaded DLL版本,而其他文件用了Single- Threaded或者Multithreaded版本的库,也就是说用了不同的库,就会导致这个警告的出现。
VC中的C运行时库一共有6种
Single-threaded (libc.lib) libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded (libcmt.lib) libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded using DLL (msvcrt.lib) libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Debug Single-threaded (libcd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib
Debug Multithreaded (libcmtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib
Debug Multithreaded using DLL (msvcrtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib
这个在C++ ->Code Generation-->runtime library 中设置,实际上和静态dll和动态dll有关
解决办法:
Project Settings:
-> Configration Properties -> Linker -> Input -> Ignore Specific Library: libcmtd
libcmtd 这个库有时候不能忽略,忽略后会有不能解析的外部符号错误
其实有个方便的方法 链接时加入参数 /FORCE:MULTIPLE
需要注意的是,当使用其他的库的时候最容易产生这种错误,例如boost和wxWindow使用/MD来编译的,也就是使用支持多线程的C函数库。这时候 如果自己的程序没有指明/MD的话,就会提示两种C函数冲突,并且还有LNK2005错误。因此如果使用boost,wxWindow的话,需要指明 /MD。
msvcrt.lib是VC中的Multithreaded DLL 版本的C运行时库,而libcmt.lib是Multithreaded的运行时 库。在同一个项目中,所有的源文件必须链接相同的C运行时库。如果某一文件用了Multithreaded DLL版本,而其他文件用了Single- Threaded或者Multithreaded版本的库,也就是说用了不同的库,就会导致这个警告的出现。
VC中的C运行时库一共有6种
Single-threaded (libc.lib) libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded (libcmt.lib) libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded using DLL (msvcrt.lib) libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Debug Single-threaded (libcd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib
Debug Multithreaded (libcmtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib
Debug Multithreaded using DLL (msvcrtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib
这个在C++ ->Code Generation-->runtime library 中设置,实际上和静态dll和动态dll有关
解决办法:
Project Settings:
-> Configration Properties -> Linker -> Input -> Ignore Specific Library: libcmtd
libcmtd 这个库有时候不能忽略,忽略后会有不能解析的外部符号错误
其实有个方便的方法 链接时加入参数 /FORCE:MULTIPLE
0 0
- 已经定义的错误 libcmtd.lib
- 错误: _malloc 已经在 Libcmtd.lib 中定义, 引发的思考
- 错误: _malloc 已经在 Libcmtd.lib 中定义, 引发的思考
- 错误: _malloc 已经在 Libcmtd.lib 中定义, 引发的思考
- vs中运行项目出现“*** 已经在libcmtd.lib中定义”的错误
- uafxcwd.lib(afxmem.obj) : error LNK2005: 已经在 LIBCMTD.lib(new.obj) 中定义错误解决方案
- uafxcwd.lib(afxmem.obj) : error LNK2005: 已经在 LIBCMTD.lib(new.obj) 中定义错误解决方案
- VS2005链接问题: LNK2005错误 :error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
- LNK2005错误 :error LNK2005: 已经在 libcmtd.lib(dbgheap.obj) 中定义
- VS2005链接问题: LNK2005错误 :error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
- LNK2005错误 :error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
- LNK2005错误 :error LNK2005: 已经在 libcmtd.lib(dbgheap.obj) 中定义
- LNK2005错误 :error LNK2005: 已经在 libcmtd.lib(dbgheap.obj) 中定义
- 函数重复定义的编译错误,MSVCRTD.lib库和LIBCMTD.lib库重复定义函数
- 函数重复定义的编译错误,MSVCRTD.lib库和LIBCMTD.lib库重复定义函数
- 函数重复定义的编译错误,MSVCRTD.lib库和LIBCMTD.lib库重复定义函数
- 函数重复定义的编译错误,MSVCRTD.lib库和LIBCMTD.lib库重复定义函数
- 【VS开发】uafxcwd.lib(afxmem.obj) : error LNK2005: 已经在 LIBCMTD.lib(new.obj) 中定义错误解决方案
- Linux-系统管理-ipmitool
- Audroid-studio2.2安装1%与windows不兼容和Error occurred during initialization of VM 的问题
- caffe im2col 详解
- 深入理解PHP架构及生命周期和PHP长连接(伪连接池)
- Odoo ORM API(三)- Model Reference
- 已经定义的错误 libcmtd.lib
- C/C++三种常见变量赋初值和三种强制转换方式
- MongoDB基本命令用
- MySQL 数据库记录操作
- 在Linux系统下,如果程序中出现segment fault,如何可以让系统产生core dump文件?如何用gdb来跟踪出错的地方?
- PHP header 的几种用法
- 欢迎使用CSDN-markdown编辑器
- 使用 iOS 8 Spring Animation API 创建动画
- 达内学习笔记---win32编程窗口函数