关于live555不同库的问题
公司有个视频服务器项目,原先都是在Debug下,现在改成Release,调试会出错:
1>groupsock.lib(Groupsock.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(StkErrReport.obj 中)
1>groupsock.lib(NetInterface.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(StkErrReport.obj 中)
1>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>F:\rtmp\MyPrj\StkNetVideoServer\Release\StkNetVideoServer.exe : fatal error LNK1319: 检测到 2 个不匹配项
项目里面用到了rtmp服务(这个是请别人做的)和视频代理服务,应该还是Debug和Release库的问题,但是用到的同一个live555库,该怎么改。
[解决办法]
方法一:
既然冲突,那就禁用掉。在工程属性里面的库依赖。
1>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
我判断你应该是使用了不同版本的库导致的。
方法二:
可以尝试修改一下
//debug Multi-threaded (/MT)
//release Multi-threaded Debug (/MTd)
//以上为静态库版本
生成两种版本的均可。但是连接使用的时候注意对应版本。
//debug Multi-threaded DLL Debug (/MDD)
//release Multi-threaded DLL (MD)
//以上为动态库版本