VS2010默认库“MSVCRTD“,“LIBCMTD与其他库的使用冲突,请使用NODEFAULTLIB:library

VS2010默认库“MSVCRTD“,“LIBCMTD与其他库的使用冲突,请使用NODEFAULTLIB:library,第1张

VS2010默认库“MSVCRTD“,“LIBCMTD与其他库的使用冲突,请使用/NODEFAULTLIB:library

vs2010+opencv库运行过程中的问题:

链接警告:

1>link : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>link : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

 解决方法:1.查看项目属性--C/C++--代码生成--运行时库是哪种状态(/MT,/MDd,DLL(/MDd),DLL(/MD))

2.在属性--链接器--命令行--添加

如果是单线程 (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 

如果是调试单线程 (libcd.lib) 
libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib 

如果是调试多线程 (libcmtd.lib) 
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib 

如果是多线程调试DLL(/MDd),则添加:/NODEFAULTLIB:libc.lib  /NODEFAULTLIB:libcmt.lib   /NODEFAULTLIB:msvcrt.lib   /NODEFAULTLIB:libcd.lib   /NODEFAULTLIB:libcmtd.lib

3.添加后运行程序,出现无法解析的命令,

 则在属性--链接器--输入-附加选项添加:comctl32.lib

4.添加成功后,运行程序 ,出现一个或多个重定义的符号,

 在属性--链接器--命令行添加 /force:multiple ,即可运行成功。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5635280.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存