2016-07-25 149 views
0

我試圖編譯虛擬攝像機sample在VS2015的,但有很多的鏈接錯誤的:DirectShow的虛擬攝像頭樣品不鏈接錯誤編譯

strmbasd.lib(wxlist.obj) : error LNK2001: unresolved external symbol "void * __cdecl operator new(unsigned int)" ([email protected]@Z) 
Filters.obj : error LNK2001: unresolved external symbol "void * __cdecl operator new(unsigned int)" ([email protected]@Z) 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol "void * __cdecl operator new(unsigned int)" ([email protected]@Z) 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "void * __cdecl operator new(unsigned int)" ([email protected]@Z) 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol "void * __cdecl operator new(unsigned int)" ([email protected]@Z) 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" ([email protected]@Z) 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" ([email protected]@Z) 
strmbasd.lib(wxlist.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" ([email protected]@Z) 
Filters.obj : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" ([email protected]@Z) 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" ([email protected]@Z) 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" ([email protected]@Z) 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete(void *,unsigned int)" ([email protected]@Z) 
Filters.obj : error LNK2019: unresolved external symbol "void * __cdecl operator new[](unsigned int)" ([email protected]@Z) referenced in function "private: __thiscall CVCam::CVCam(struct IUnknown *,long *)" ([email protected]@[email protected]@@[email protected]) 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol "void * __cdecl operator new[](unsigned int)" ([email protected]@Z) 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol "void * __cdecl operator new[](unsigned int)" ([email protected]@Z) 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol "void * __cdecl operator new[](unsigned int)" ([email protected]@Z) 
strmbasd.lib(combase.obj) : error LNK2001: unresolved external symbol _memcmp 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol _memcmp 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol _memcmp 
Filters.obj : error LNK2001: unresolved external symbol _memcmp 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol _memcmp 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol _memcmp 
strmbasd.lib(amvideo.obj) : error LNK2001: unresolved external symbol _memcmp 
Filters.obj : error LNK2019: unresolved external symbol _memset referenced in function "public: virtual long __thiscall CVCamStream::GetMediaType(int,class CMediaType *)" ([email protected]@@[email protected]@@Z) 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol _memset 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol _memset 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol _memset 
Filters.obj : error LNK2019: unresolved external symbol __imp__rand referenced in function "public: virtual long __thiscall CVCamStream::FillBuffer(struct IMediaSample *)" ([email protected]@@[email protected]@@Z) 
Filters.obj : error LNK2001: unresolved external symbol "const type_info::`vftable'" ([email protected]@[email protected]) 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "const type_info::`vftable'" ([email protected]@[email protected]) 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol "const type_info::`vftable'" ([email protected]@[email protected]) 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol "const type_info::`vftable'" ([email protected]@[email protected]) 
LINK : error LNK2001: unresolved external symbol [email protected] 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol "void __cdecl operator delete[](void *)" ([email protected]@Z) referenced in function "public: __thiscall CDispBasic::~CDispBasic(void)" ([email protected]@[email protected]) 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete[](void *)" ([email protected]@Z) 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol "void __cdecl operator delete[](void *)" ([email protected]@Z) 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol ___report_rangecheckfailure referenced in function "public: __thiscall CDisp::CDisp(__int64,int)" ([email protected]@[email protected][email protected]) 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol __imp__wcsrchr referenced in function "wchar_t * __cdecl wcsrchr(wchar_t *,wchar_t)" ([email protected]@[email protected]) 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol __imp__wcsrchr 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol __imp____stdio_common_vswprintf referenced in function __vsnwprintf_l 
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol __imp____stdio_common_vswprintf 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol __imp____stdio_common_vswprintf 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol __imp____stdio_common_vswprintf 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol __imp____stdio_common_vsprintf referenced in function __vsnprintf_l 
strmbasd.lib(wxlist.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(amvideo.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(combase.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(amvideo.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol @[email protected] 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(wxlist.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(amvideo.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(combase.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(wxlist.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(amvideo.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(combase.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol __RTC_InitBase 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(wxlist.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(amvideo.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(combase.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol __RTC_Shutdown 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol __alldiv referenced in function "public: __thiscall CDisp::CDisp(class CRefTime)" ([email protected]@[email protected]@@@Z) 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol __allrem referenced in function "public: __thiscall CDisp::CDisp(class CRefTime)" ([email protected]@[email protected]@@@Z) 
strmbasd.lib(wxdebug.obj) : error LNK2019: unresolved external symbol __chkstk referenced in function "void __cdecl DbgBreakPoint(wchar_t const *,int,wchar_t const *,...)" ([email protected]@YAXPB_WH0ZZ) 
strmbasd.lib(amvideo.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(wxutil.obj) : error LNK2001: unresolved external symbol ___security_cookie 
strmbasd.lib(wxdebug.obj) : error LNK2001: unresolved external symbol __fltused 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol __fltused 
strmbasd.lib(dllentry.obj) : error LNK2019: unresolved external symbol ___security_init_cookie referenced in function [email protected] 
strmbasd.lib(wxutil.obj) : error LNK2019: unresolved external symbol _memcpy referenced in function [email protected] 
strmbasd.lib(mtype.obj) : error LNK2001: unresolved external symbol _memcpy 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol _memcpy 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol _memcpy 
strmbasd.lib(wxutil.obj) : error LNK2019: unresolved external symbol __RTC_UninitUse referenced in function "public: int __thiscall CAMMsgEvent::WaitMsg(unsigned long)" ([email protected]@@[email protected]) 
strmbasd.lib(amfilter.obj) : error LNK2001: unresolved external symbol __purecall 
strmbasd.lib(source.obj) : error LNK2001: unresolved external symbol __purecall 
strmbasd.lib(amfilter.obj) : error LNK2019: unresolved external symbol __allmul referenced in function "protected: virtual long __thiscall CMemAllocator::Alloc(void)" ([email protected]@@MAEJXZ) 
strmbasd.lib(source.obj) : error LNK2019: unresolved external symbol __imp___wtoi referenced in function "public: virtual long __stdcall CSource::FindPin(wchar_t const *,struct IPin * *)" ([email protected]@@[email protected]@@Z) 

器命令行:

/OUT:"C:\Users\Администратор.000\Documents\Visual Studio 2013\Projects\virtual-camera-demo\open-source-directshow-video-capture-demo-filter-master\vcam_vs_2010_demo_video_capture_project\Debug\vcam_vs_2010.ax" /MANIFEST /NXCOMPAT /PDB:"C:\Users\Администратор.000\Documents\Visual Studio 2013\Projects\virtual-camera-demo\open-source-directshow-video-capture-demo-filter-master\vcam_vs_2010_demo_video_capture_project\Debug\vcam_vs_2010.pdb" /DYNAMICBASE "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug\strmbasd.lib" "strmiids.lib" "winmm.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEF:"Filters.def" /IMPLIB:"C:\Users\Администратор.000\Documents\Visual Studio 2013\Projects\virtual-camera-demo\open-source-directshow-video-capture-demo-filter-master\vcam_vs_2010_demo_video_capture_project\Debug\vcam_vs_2010.lib" /DEBUG /DLL /MACHINE:X86 /INCREMENTAL /PGD:"C:\Users\Администратор.000\Documents\Visual Studio 2013\Projects\virtual-camera-demo\open-source-directshow-video-capture-demo-filter-master\vcam_vs_2010_demo_video_capture_project\Debug\vcam_vs_2010.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\vcam_vs_2010.ax.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /NODEFAULTLIB /TLBID:1 

我已編譯strmbasd.lib,包含所有必要的庫,檢查來自baseclasses項目的unicode字符集和編譯器設置,嘗試下載編譯strmbasd.lib,但我不明白是什麼錯誤。如何使這個示例成功編譯?

+0

BaseClasses和你的項目之間很可能仍然存在重要的變化,因此將兩者連接在一起仍然會產生無法解析的外部符號 –

+0

我只是拿了樣本項目和baseclasses庫並試圖編譯樣本,我認爲最大的區別是be是VS項目的版本。我發現了一些關於用同樣的編譯器重新編譯基類strmbasd.lib的建議,因爲我用它來編譯示例,而且我做了它,但沒有更改。 –

+0

它仍然看起來像編譯器/鏈接器選項不匹配。然而,作爲一種解決方法,您可以將strmbas?.lib鏈接替換爲直接將其文件包含到DLL項目中(如果您放棄嘗試對靜態庫鏈接進行排序)。 –

回答

1

我無法使用directshow vcam示例在Windows 10 w \ VS 2013或VS 2015上工作,我花了無數個小時。

我能夠在30分鐘內在Win7 x86虛擬機中工作。我可能會去通過,並在某些時候重新驗證這些

第1步:創建Windows 7虛擬機的x86

第2步:獲取SDK

* [https://www.microsoft.com/en-us/download/details.aspx?id=8442][1] 

第3步:獲得2010個樣本

* https://www.microsoft.com/en-us/download/details.aspx?id=6812 
* installs files program files\microsoft DirectX SDK (June 2010) 
* this step is probably not needed. 

步驟4:DL視覺工作室2013

* [https://go.microsoft.com/fwlink/?LinkId=517284][1] 

步驟5:安裝GIT中

* install git 
* mkdir projects 
* git clone https://github.com/johnmaccormick/MultiCam 
* cd MultiCam 

步驟6:

* import these \baseclasses into a project c:\projects\baseclasses 
* 
    * C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses 
    * I think these build first time, didn't change anything that I can remember 

步驟7:

* open multicam project 
* vcam project properties-->library directories 
* add C:\Program Files\Microsoft SDKs\Windows\v7.1\lib 
* add c:\projects\baseclasses\debug 
* compile win32 
1

我只是偶然發現了相同的,而試圖使一個音頻渲染濾波器Visual Studio 2015.我設法通過添加所需的庫和crt中的一些奇怪的東西來獲得它的鏈接(與/NODEFAULTLIBS標誌)運行時間源(確切地說initializers.cpp)。您可以查看https://github.com/rubu/VirtualAudioRenderer