0

我需要使用具有 func 的修改后的 videoInput 库 deviceSetupWithSubtype() (它不是原始的 videoInput 库)

我在本页末尾 得到了.h和:http: //opencv.willowgarage.com/wiki/CameraCapture.cpprar

我尝试用 VC2010 Express C++ 编译它,得到了我的 .lib,但是当我把它放到我想使用修改后的 videoInput.h 的程序中时,我得到了很多 LNK 错误,例如:

videoInput.lib(videoInput.obj) :error LNK2001:  unresolved external symbol __imp__CoTaskMemFree@4 

videoInput.lib(videoInput.obj) :error LNK2001:  unresolved external symbol _MEDIASUBTYPE_RGB24 

videoInput.lib(videoInput.obj) :error LNK2001:  unresolved external symbol _MEDIASUBTYPE_AYUV 

videoInput.lib(videoInput.obj) :error LNK2001:  unresolved external symbol _MEDIASUBTYPE_Y211 

(我也尝试了普通的 videoInput.lib 并且效果很好,但这不是我需要的版本)。

我该如何解决?或者如果你只有这个修改过的 videoInput.lib,你能上传它吗?谢谢你。

编辑:

在发布模式下,我也收到此错误:

videoInput.lib(videoInput.obj) : error LNK2038: mismatch detected for  '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' 
4

1 回答 1

1

经过大量搜索链接错误后,我尝试了许多库,最后我找到了解决方案:您必须在 videoInput.h 中添加这些行(最终调整链接器中的路径,我不需要它):

// if gives error LNK2038: mismatch detected for   '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2'
// insert _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH in the C++ preprocessor option in the project properties
// these are the library needed:
#pragma comment (lib, "oleaut32")
#pragma comment (lib, "ole32")
#pragma comment (lib, "user32")
#pragma comment (lib, "strmbase")

现在生成的 videoInput.lib 可以正确编译。

于 2013-02-11T09:49:49.837 回答