解决 warning LNK4098

 LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library    
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 to use 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-time library.

 版 本类 型使用的library  被忽略的library 
Release单线程libc.lib  libcmt.lib, msvcrt.lib
 多线程libcmt.liblibc.lib, msvcrt.lib
 使用DLL的多线程msvcrt.lib  libc.lib, libcmt.lib
Debug单线程libcd.lib  libcmtd.lib, msvcrtd.lib 
 多线程libcmtd.liblibcmtd.lib, msvcrtd.lib
 使用DLL的多线程msvcrtd.lib  libcd.lib, libcmtd.lib 

      
 例如编译Release版本的单线程的工程,在linker的命令行加入如下的参数:

 /NODEFAULTLIB:libcmt.lib   /NODEFAULTLIB:msvcrt.lib

/NODEFAULTLIB:libcd.lib     /NODEFAULTLIB:libcmtd.lib    /NODEFAULTLIB:msvcrtd.lib

当然,通过VC6.0的开发环境也可以配置。选择Project -> Setting,出现Project Setting对话框,单击Link标签,在Category下拉菜单中选择Input,在下方的Ignore libraries: 输入框中输入“被忽略的library”框中对应的libs。输入时注意当前Build是什么版本,libs之间用“,”隔开。“Ingore all default libraries”不能勾选。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值