类库冲突解决方法

注:本人的这个问题并没有解决,不过应该可以解决一些问题。

LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library

有此问题解决办法的请赐教,以下为转帖内容-------

lib之间有冲突。需要删除导入的一些libs

工程一大,包含的头文件和库也就多了,冲突一时是不可避免的。 不过还好, 只是Warning,并不影响整个工程的编译和运行。但是一些项目就要求尽量不出现Warning,因为你不知道将来项目的Bug会不会是由此而引起。严格,未雨绸缪,总是一件好事。谁也不想将来的某个时候去Debug N年前的玩意。 痛苦啊~~

MSDN上的解释为:

You are trying to link with incompatible libraries.

Important   The run-time libraries now contain directives to prevent mixing different types. You’ll receive this warning if you try touse different types or debug and non-debug versions of the run-time library in the same program. For example, if you compiled one file to use one kind of run-time library and another file to use another kind (for example, single-threaded versus multithreaded) and tried to link them, you’ll get this warning. You should compile all source files to use the same run-timelibrary.

总之,一句话,

 

 

版 本   

类 型

使用的library

被忽略的library   

Release

 

 

 

 

 

 

 

单线程

 

libc.lib

 

libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

 

多线程

libcmt.lib

 

libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

 

使用DLL的多线程

msvcrt.lib

libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

Debug

 

 

 

 

 

 

 

单线程

libcd.lib

libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib

多线程

libcmtd.lib

libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib

使用DLL的多线程

msvcrtd.lib

libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值