MFC下用DirectShow SDK来实现读取摄像头数据时,在程序链接时出现的异常,请大家指点
MFC下用DirectShow SDK来实现读取摄像头数据时,在程序链接时出现的错误,请大家指点!
我在MFC环境下,想通过DirectShow SDK来读取摄像头数据,程序编译都通过了,但是在链接时出现以下错误:
Linking...
LIBCMTD.lib(fpinit.obj) : error LNK2005: __ldused already defined in a previous module
LIBCMTD.lib(fpinit.obj) : error LNK2005: __fltused already defined in a previous module
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _free already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in msvcrt.lib(MSVCRT.dll)
msvcrt.lib(MSVCRT.dll) : error LNK2005: __setmbcp already defined in LIBCMTD.lib(mbctype.obj)
LINK : warning LNK4098: defaultlib "msvcrt.lib " conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "LIBCMTD " conflicts with use of other libs; use /NODEFAULTLIB:library
LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Release/Fire07.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...
Fire07.exe - 14 error(s), 10 warning(s)
我已经在project-> setting下,将工程的Use run-time library设置成了Multithreaded DLL(project options下有 /MD标示),请大家帮忙替我分析一下原因。谢谢!
------解决方案--------------------
要保证你的项目中所有的模块设置都为 Multithreaded DLL.
实在没办法,你也可以强制输出 settings-> link-> customize-> fore file output 。
------解决方案--------------------
/MD
MSVCRT.LIB
多线程DLL的Release版本
/MTd
LIBCMTD.LIB
多线程静态链接的Debug版本
你的问题应该是debug和release的库在连接的时候用混了。
------解决方案--------------------
尝试一下忽略libcmtd.lib
------解决方案--------------------
你的LIBCMTD.lib库跟msvcrt.lib运行库有冲突!
------解决方案--------------------
error LNK2001: unresolved external symbol _main
一下就看到上面这句了,工程类型不对啊,改成subsystem:windows
我在MFC环境下,想通过DirectShow SDK来读取摄像头数据,程序编译都通过了,但是在链接时出现以下错误:
Linking...
LIBCMTD.lib(fpinit.obj) : error LNK2005: __ldused already defined in a previous module
LIBCMTD.lib(fpinit.obj) : error LNK2005: __fltused already defined in a previous module
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _free already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit already defined in msvcrt.lib(MSVCRT.dll)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in msvcrt.lib(cinitexe.obj)
LIBCMTD.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in msvcrt.lib(MSVCRT.dll)
msvcrt.lib(MSVCRT.dll) : error LNK2005: __setmbcp already defined in LIBCMTD.lib(mbctype.obj)
LINK : warning LNK4098: defaultlib "msvcrt.lib " conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "LIBCMTD " conflicts with use of other libs; use /NODEFAULTLIB:library
LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Release/Fire07.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...
Fire07.exe - 14 error(s), 10 warning(s)
我已经在project-> setting下,将工程的Use run-time library设置成了Multithreaded DLL(project options下有 /MD标示),请大家帮忙替我分析一下原因。谢谢!
------解决方案--------------------
要保证你的项目中所有的模块设置都为 Multithreaded DLL.
实在没办法,你也可以强制输出 settings-> link-> customize-> fore file output 。
------解决方案--------------------
/MD
MSVCRT.LIB
多线程DLL的Release版本
/MTd
LIBCMTD.LIB
多线程静态链接的Debug版本
你的问题应该是debug和release的库在连接的时候用混了。
------解决方案--------------------
尝试一下忽略libcmtd.lib
------解决方案--------------------
你的LIBCMTD.lib库跟msvcrt.lib运行库有冲突!
------解决方案--------------------
error LNK2001: unresolved external symbol _main
一下就看到上面这句了,工程类型不对啊,改成subsystem:windows