Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linker errors in building Vivek's Virtual Camera on Windows 10?

I am trying to build Vivek's Virtual Camera on Windows 10.
For that I need to have Win7Samples/multimedia/directshow/baseclasses

I have downloaded baseclasses and built it using Visual Studio 2019.
Now I am ready to build Virtual camera filter. I followed few requisite steps

  1. git clone https://github.com/roman380/tmhare.mvps.org-vcam
  2. cd tmhare.mvps.org-vcam\Filters
  3. Then I tried to open Filters.dsp in Visual Studio 2019 which asked me to do one-way upgrade
    enter image description here
  4. Added C:\Users\alokm\tmp\Windows-classic-samples\Samples\Win7Samples\multimedia\directshow\baseclasses in Additional Include Directories
    enter image description here
  5. Added C:\Users\alokm\tmp\Windows-classic-samples\Samples\Win7Samples\multimedia\directshow\baseclasses\Debug to Addition Library Directories
    enter image description here
  6. After all these steps I tried to build by hitting Build >> Build Solution
    But I am getting lot of linker errors.
    enter image description here

Errors in text format:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol _memcmp  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(combase.obj)   1   
Error   LNK2001 unresolved external symbol _memcmp  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(mtype.obj) 1   
Error   LNK2001 unresolved external symbol _memcmp  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(amfilter.obj)  1   
Error   LNK2001 unresolved external symbol _memcmp  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\Filters.obj 1   
Error   LNK2001 unresolved external symbol _memcmp  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(dllentry.obj)  1   
Error   LNK2001 unresolved external symbol _memcmp  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxdebug.obj)   1   
Error   LNK2001 unresolved external symbol _memcmp  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(amvideo.obj)   1   
Error   LNK2019 unresolved external symbol _memset referenced in function "public: virtual long __thiscall CVCamStream::GetMediaType(int,class CMediaType *)" (?GetMediaType@CVCamStream@@UAEJHPAVCMediaType@@@Z)   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\Filters.obj 1   
Error   LNK2001 unresolved external symbol _memset  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxdebug.obj)   1   
Error   LNK2001 unresolved external symbol _memset  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(mtype.obj) 1   
Error   LNK2001 unresolved external symbol _memset  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(amfilter.obj)  1   
Error   LNK2019 unresolved external symbol __imp__rand referenced in function "public: virtual long __thiscall CVCamStream::FillBuffer(struct IMediaSample *)" (?FillBuffer@CVCamStream@@UAEJPAUIMediaSample@@@Z)   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\Filters.obj 1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(mtype.obj) 1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(amfilter.obj)  1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(source.obj)    1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxlist.obj)    1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\Filters.obj 1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxdebug.obj)   1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxutil.obj)    1   
Error   LNK2001 unresolved external symbol ___CxxFrameHandler3  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(combase.obj)   1   
Error   LNK2019 unresolved external symbol _wcsrchr referenced in function "wchar_t * __cdecl wcsrchr(wchar_t *,wchar_t)" (?wcsrchr@@YAPA_WPA_W_W@Z)    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(dllentry.obj)  1   
Error   LNK2001 unresolved external symbol _wcsrchr Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxdebug.obj)   1   
Error   LNK2019 unresolved external symbol __imp____stdio_common_vswprintf referenced in function __vsnwprintf_l    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(dllentry.obj)  1   
Error   LNK2001 unresolved external symbol __imp____stdio_common_vswprintf  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxdebug.obj)   1   
Error   LNK2001 unresolved external symbol __imp____stdio_common_vswprintf  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(dllsetup.obj)  1   
Error   LNK2001 unresolved external symbol __imp____stdio_common_vswprintf  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxutil.obj)    1   
Error   LNK2019 unresolved external symbol __imp____stdio_common_vsprintf referenced in function __vsnprintf_l  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxdebug.obj)   1   
Error   LNK2019 unresolved external symbol _memcpy referenced in function _AMGetWideString@8    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(wxutil.obj)    1   
Error   LNK2001 unresolved external symbol _memcpy  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(mtype.obj) 1   
Error   LNK2001 unresolved external symbol _memcpy  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(amfilter.obj)  1   
Error   LNK2001 unresolved external symbol _memcpy  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(source.obj)    1   
Error   LNK2001 unresolved external symbol __purecall   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(amfilter.obj)  1   
Error   LNK2001 unresolved external symbol __purecall   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(source.obj)    1   
Error   LNK2019 unresolved external symbol __imp___wtoi referenced in function "public: virtual long __stdcall CSource::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CSource@@UAGJPB_WPAPAUIPin@@@Z) Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\strmbasd.lib(source.obj)    1   
Error   LNK2019 unresolved external symbol __CrtDbgReport referenced in function __CRT_RTC_INIT Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(init.obj)   1   
Error   LNK2019 unresolved external symbol __CrtDbgReportW referenced in function __CRT_RTC_INITW   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(init.obj)   1   
Error   LNK2019 unresolved external symbol __callnewh referenced in function "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(new_scalar.obj) 1   
Error   LNK2019 unresolved external symbol _malloc referenced in function "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z)    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(new_scalar.obj) 1   
Error   LNK2019 unresolved external symbol _strcpy_s referenced in function "void __cdecl _RTC_StackFailure(void *,char const *)" (?_RTC_StackFailure@@YAXPAXPBD@Z) Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(error.obj)  1   
Error   LNK2019 unresolved external symbol _strcat_s referenced in function "void __cdecl _RTC_StackFailure(void *,char const *)" (?_RTC_StackFailure@@YAXPAXPBD@Z) Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(error.obj)  1   
Error   LNK2019 unresolved external symbol ___stdio_common_vsprintf_s referenced in function __vsprintf_s_l Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(error.obj)  1   
Error   LNK2019 unresolved external symbol ___std_exception_copy referenced in function "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z)   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(throw_bad_alloc.obj)    1   
Error   LNK2019 unresolved external symbol ___std_exception_destroy referenced in function "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(throw_bad_alloc.obj)    1   
Error   LNK2019 unresolved external symbol __CxxThrowException@8 referenced in function "void __cdecl __scrt_throw_std_bad_alloc(void)" (?__scrt_throw_std_bad_alloc@@YAXXZ)    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(throw_bad_alloc.obj)    1   
Error   LNK2019 unresolved external symbol __free_dbg referenced in function "void __cdecl operator delete(void *)" (??3@YAXPAX@Z)  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(delete_scalar.obj)  1   
Error   LNK2019 unresolved external symbol __wmakepath_s referenced in function "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned int)" (?GetPdbDllPathFromFilePath@@YAHPB_WPA_WI@Z)    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(pdblkup.obj)    1   
Error   LNK2019 unresolved external symbol __wsplitpath_s referenced in function "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned int)" (?GetPdbDllPathFromFilePath@@YAHPB_WPA_WI@Z)   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(pdblkup.obj)    1   
Error   LNK2019 unresolved external symbol _wcscpy_s referenced in function "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned int)" (?GetPdbDllPathFromFilePath@@YAHPB_WPA_WI@Z)    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(pdblkup.obj)    1   
Error   LNK2019 unresolved external symbol ___vcrt_GetModuleFileNameW referenced in function "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPAUHINSTANCE__@@XZ)  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(pdblkup.obj)    1   
Error   LNK2019 unresolved external symbol ___vcrt_GetModuleHandleW referenced in function "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPAUHINSTANCE__@@XZ)    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(pdblkup.obj)    1   
Error   LNK2019 unresolved external symbol ___vcrt_LoadLibraryExW referenced in function "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPAUHINSTANCE__@@XZ)  Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(pdblkup.obj)    1   
Error   LNK2019 unresolved external symbol _terminate referenced in function __except_handler4_noexcept Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(chandler4_noexcept.obj) 1   
Error   LNK2019 unresolved external symbol ___current_exception referenced in function __except_handler4_noexcept   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(chandler4_noexcept.obj) 1   
Error   LNK2019 unresolved external symbol ___current_exception_context referenced in function __except_handler4_noexcept   Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(chandler4_noexcept.obj) 1   
Error   LNK2019 unresolved external symbol __except_handler4_common referenced in function __except_handler4    Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Filters\MSVCRTD.lib(chandler4gs.obj)    1   
Error   LNK1120 31 unresolved externals Filters C:\Users\alokm\tmp\tmhare.mvps.org-vcam\Bin\VCamD.ax    1   

Where I am wrong? How to make this working?

like image 853
Alok Avatar asked Jan 16 '21 13:01

Alok


1 Answers

The problem building the project is coming from this:

  1. The project source code has a dependency of DirectShow BaseClasses which is no longer a part of Windows SDK
  2. The project has too many settings diverged from defaults; with current Visual Studio it becomes a problem

I updated the github repository and changed the project settings to make the project build (Visual Studio 2019 Communitty) and run: most of the C++ project settings are reverted and DirectShow BaseClasses are used in the build configuration from github.

Check out README.md there, follow build steps (which require to pull Windows SDK Samples first, and build DirectShow stuff there), have DLLs registered (regsvr32) and finally you will have the filter generating video with random data:

like image 189
Roman R. Avatar answered Oct 20 '22 05:10

Roman R.