msvcrt.lib是VC中的Multithreaded DLL 版本的C运行时库,而libcmt.lib是Multithreaded的运行时库。
LNK2005这个错误是微软设计错误,因此如果遇到这个错误,我们只能躲过这个链接错误。具体的办法
就是将那个提示出错的库放到另外一个库的前面。另外选择不同的C函数库,可能会引起这个
错误。MS, C有两种C函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。另外一种是
支持多线程的:msvcrt.lib。如果一个工程里,这两种函数库混合使用,可能会引起这个错误。
因此建议使用支持多线程的msvcrt.lib。
VS2005:cannot open file 'LIBC.lib'
单击项目->项目属性->配置属性->链接器->输入->忽略特定库,输入LIBC.lib即可。
原因是Visual C++ 2005不再支持单线程的CRT库(LIBC.lib)
libc.lib原来是被遗弃的可怜家伙。
Run-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。我们一般使用的Run-Time Library是C Run-Time Libraries。
当然也有Standard C++ libraries。
C Run-Time Libraries实现ANSI C的标准库。
VC安装目录的CRT目录有C Run-Time库的大部分源代码。
C Run-Time Libraries有静态库版本,也有动态链接库版本;有单线程版本,也有多线程版本;还有调试和非调试版本。
本文详细解析了MSVCRT与LIBCMT库的区别及应用场合,阐述了如何解决因混合使用不同类型的C运行时库而导致的LNK2005错误,并提供了在Visual C++ 2005中忽略指定库的方法。
2151

被折叠的 条评论
为什么被折叠?



