Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Building 3.4.6, Windows 10 with Cuda

OK, I am stumped. I have tried about a half a dozen different web sites that have different ways to build OpenCV. I am trying to build 3.4.6 on Windows 10 using VS 2015, and CUDA 9.2. It seems I am always running into the following:

    D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(798): error C2065: 'ID3D11Multithread': undeclared identifier [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(798): error C2923: '`anonymous-namespace'::ComPtr': 'ID3D11Multithread' is not a valid template type argument for parameter 'T' [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(798): error C2133: 'D3DDevMT': unknown size [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(798): error C2512: '`anonymous-namespace'::ComPtr': no appropriate default constructor available [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
  D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(121): note: see declaration of '`anonymous-namespace'::ComPtr'
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(800): error C2100: illegal indirection [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(800): error C2672: 'IID_PPV_ARGS_Helper': no matching overloaded function found [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(800): error C2784: 'void **IID_PPV_ARGS_Helper(T **)': could not deduce template argument for 'T **' from '`anonymous-namespace'::ComPtr *' [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
  C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\um\combaseapi.h(231): note: see declaration of 'IID_PPV_ARGS_Helper'
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(800): error C2660: 'IUnknown::QueryInterface': function does not take 1 arguments [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(802): error C2678: binary '->': no operator found which takes a left-hand operand of type '`anonymous-namespace'::ComPtr' (or there is no acceptable conversion) [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
  D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(143): note: could be 'T *`anonymous-namespace'::ComPtr<T>::operator ->(void) const'
  D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(802): note: while trying to match the argument list '(`anonymous-namespace'::ComPtr)'
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(802): error C2039: 'SetMultithreadProtected': is not a member of '`anonymous-namespace'::ComPtr' [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
  D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(121): note: see declaration of '`anonymous-namespace'::ComPtr'
D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(803): error C2662: 'void `anonymous-namespace'::ComPtr<T>::Release(void)': cannot convert 'this' pointer from '`anonymous-namespace'::ComPtr' to '`anonymous-namespace'::ComPtr<T> &' [D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\build\modules\videoio\opencv_videoio.vcxproj]
  D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(803): note: Reason: cannot convert from '`anonymous-namespace'::ComPtr' to '`anonymous-namespace'::ComPtr<T>'
  D:\DevLibs\OpenCV\OpenCV-3.4.6\opencv-3.4.6\modules\videoio\src\cap_msmf.cpp(803): note: Conversion requires a second user-defined-conversion operator or constructor

I am sure I am configuring something wrong but I cannot figure out what? Anybody seen this or have an thought?

Thanks, Doug