VC2022+windows sdk 7 + directshow编译错误:strmbasd.lib(winutil.obj) : error LNK2019: 无法解析的外部符号 memcmp,该符号在函数 “public: __cdecl CImagePalette::CImagePalette(class CBaseFilter *,class CBaseWindow *,class CDrawImage *)” (??0CImagePalette@@QEAA@PEAVCBaseFilter@@PEAVCBaseWindow@@PEAVCDrawImage@@@Z) 中被引用
VC2022+windows sdk 7 + directshow编译错误: strmbasd.lib(winutil.obj) : error LNK2019: 无法解析的外部符号 memcmp,该符号在函数 "public: __cdecl CImagePalette::CImagePalette(class CBaseFilter *,class CBaseWindow *,class CDrawImage *)" (??0CImagePalette@@QEAA@PEAVCBaseFilter@@PEAVCBaseWindow@@PEAVCDrawImage@@@Z) 中被引用
编译错误:
1>strmbasd.lib(winutil.obj) : error LNK2019: 无法解析的外部符号 memcmp,该符号在函数 "public: __cdecl CImagePalette::CImagePalette(class CBaseFilter *,class CBaseWindow *,class CDrawImage *)" (??0CImagePalette@@QEAA@PEAVCBaseFilter@@PEAVCBaseWindow@@PEAVCDrawImage@@@Z) 中被引用
1>strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号 memcmp
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 memcmp
1>strmbasd.lib(combase.obj) : error LNK2001: 无法解析的外部符号 memcmp
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 memcmp
1>strmbasd.lib(amfilter.obj) : error LNK2001: 无法解析的外部符号 memcmp
1>PushSourceBitmap.obj : error LNK2001: 无法解析的外部符号 memcmp
1>PushSourceBitmapSet.obj : error LNK2001: 无法解析的外部符号 memcmp
1>PushSourceDesktop.obj : error LNK2001: 无法解析的外部符号 memcmp
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 memcmp
1>strmbasd.lib(amfilter.obj) : error LNK2019: 无法解析的外部符号 memcpy,该符号在函数 "public: virtual long __cdecl CDynamicOutputPin::DeliverBeginFlush(void)" (?DeliverBeginFlush@CDynamicOutputPin@@UEAAJXZ) 中被引用
1>strmbasd.lib(source.obj) : error LNK2001: 无法解析的外部符号 memcpy
1>strmbasd.lib(winutil.obj) : error LNK2001: 无法解析的外部符号 memcpy
1>PushSourceBitmap.obj : error LNK2001: 无法解析的外部符号 memcpy
1>PushSourceBitmapSet.obj : error LNK2001: 无法解析的外部符号 memcpy
1>strmbasd.lib(wxutil.obj) : error LNK2001: 无法解析的外部符号 memcpy
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 memcpy
1>strmbasd.lib(amfilter.obj) : error LNK2019: 无法解析的外部符号 memset,该符号在函数 "public: virtual long __cdecl CDynamicOutputPin::DeliverBeginFlush(void)" (?DeliverBeginFlush@CDynamicOutputPin@@UEAAJXZ) 中被引用
1>strmbasd.lib(winutil.obj) : error LNK2001: 无法解析的外部符号 memset
1>PushSourceBitmap.obj : error LNK2001: 无法解析的外部符号 memset
1>PushSourceBitmapSet.obj : error LNK2001: 无法解析的外部符号 memset
1>PushSourceDesktop.obj : error LNK2001: 无法解析的外部符号 memset
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 memset
1>strmbasd.lib(winutil.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vswprintf
1>strmbasd.lib(dllsetup.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vswprintf
1>strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vswprintf
1>PushSourceBitmap.obj : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vswprintf
1>PushSourceBitmapSet.obj : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vswprintf
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vswprintf
1>strmbasd.lib(wxutil.obj) : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vswprintf
1>strmbasd.lib(source.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>strmbasd.lib(winutil.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>strmbasd.lib(wxlist.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>msvcrtd.lib(gshandlereh.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>strmbasd.lib(wxutil.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>strmbasd.lib(combase.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>strmbasd.lib(amfilter.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>PushSourceBitmap.obj : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>PushSourceBitmapSet.obj : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>PushSourceDesktop.obj : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 __CxxFrameHandler3
1>PushSourceDesktop.obj : error LNK2019: 无法解析的外部符号 labs,该符号在函数 "long __cdecl abs(long)" (?abs@@YAJJ@Z) 中被引用
1>strmbasd.lib(winutil.obj) : error LNK2001: 无法解析的外部符号 labs
1>strmbasd.lib(wxdebug.obj) : error LNK2019: 无法解析的外部符号 wcsrchr,该符号在函数 "wchar_t * __cdecl wcsrchr(wchar_t *,wchar_t)" (?wcsrchr@@YAPEA_WPEA_W_W@Z) 中被引用
1>strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号 wcsrchr
1>strmbasd.lib(wxdebug.obj) : error LNK2019: 无法解析的外部符号 __imp___stdio_common_vsprintf,该符号在函数 _vsnprintf_l 中被引用
1>strmbasd.lib(wxutil.obj) : error LNK2019: 无法解析的外部符号 memmove,该符号在函数 memmoveInternal 中被引用
1>strmbasd.lib(amfilter.obj) : error LNK2001: 无法解析的外部符号 _purecall
1>strmbasd.lib(source.obj) : error LNK2001: 无法解析的外部符号 _purecall
1>strmbasd.lib(source.obj) : error LNK2019: 无法解析的外部符号 __imp__wtoi,该符号在函数 "public: virtual long __cdecl CSource::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CSource@@UEAAJPEB_WPEAPEAUIPin@@@Z) 中被引用
1>msvcrtd.lib(init.obj) : error LNK2019: 无法解析的外部符号 _CrtDbgReport,该符号在函数 _CRT_RTC_INIT 中被引用
1>msvcrtd.lib(init.obj) : error LNK2019: 无法解析的外部符号 _CrtDbgReportW,该符号在函数 _CRT_RTC_INITW 中被引用
1>msvcrtd.lib(new_scalar.obj) : error LNK2019: 无法解析的外部符号 _callnewh,该符号在函数 "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) 中被引用
1>msvcrtd.lib(new_scalar.obj) : error LNK2019: 无法解析的外部符号 malloc,该符号在函数 "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) 中被引用
1>msvcrtd.lib(dll_dllmain.obj) : error LNK2019: 无法解析的外部符号 _initterm,该符号在函数 "int __cdecl dllmain_crt_process_attach(struct HINSTANCE__ * const,void * const)" (?dllmain_crt_process_attach@@YAHQEAUHINSTANCE__@@QEAX@Z) 中被引用
1>msvcrtd.lib(dll_dllmain.obj) : error LNK2019: 无法解析的外部符号 _initterm_e,该符号在函数 "int __cdecl dllmain_crt_process_attach(struct HINSTANCE__ * const,void * const)" (?dllmain_crt_process_attach@@YAHQEAUHINSTANCE__@@QEAX@Z) 中被引用
1>msvcrtd.lib(dll_dllmain.obj) : error LNK2001: 无法解析的外部符号 __C_specific_handler
1>msvcrtd.lib(utility.obj) : error LNK2001: 无法解析的外部符号 __C_specific_handler
1>msvcrtd.lib(error.obj) : error LNK2019: 无法解析的外部符号 strcpy_s,该符号在函数 "void __cdecl _RTC_StackFailure(void *,char const *)" (?_RTC_StackFailure@@YAXPEAXPEBD@Z) 中被引用
1>msvcrtd.lib(error.obj) : error LNK2019: 无法解析的外部符号 strcat_s,该符号在函数 "void __cdecl _RTC_StackFailure(void *,char const *)" (?_RTC_StackFailure@@YAXPEAXPEBD@Z) 中被引用
1>msvcrtd.lib(error.obj) : error LNK2019: 无法解析的外部符号 __stdio_common_vsprintf_s,该符号在函数 _vsprintf_s_l 中被引用
1>msvcrtd.lib(error.obj) : error LNK2001: 无法解析的外部符号 __C_specific_handler_noexcept
1>msvcrtd.lib(throw_bad_alloc.obj) : error LNK2019: 无法解析的外部符号 __std_exception_copy,该符号在函数 "public: __cdecl std::exception::exception(class std::exception const &)" (??0exception@std@@QEAA@AEBV01@@Z) 中被引用
1>msvcrtd.lib(throw_bad_alloc.obj) : error LNK2019: 无法解析的外部符号 __std_exception_destroy,该符号在函数 "public: virtual __cdecl std::exception::~exception(void)" (??1exception@std@@UEAA@XZ) 中被引用
1>msvcrtd.lib(throw_bad_alloc.obj) : error LNK2019: 无法解析的外部符号 _CxxThrowException,该符号在函数 "void __cdecl __scrt_throw_std_bad_alloc(void)" (?__scrt_throw_std_bad_alloc@@YAXXZ) 中被引用
1>msvcrtd.lib(delete_scalar.obj) : error LNK2019: 无法解析的外部符号 _free_dbg,该符号在函数 "void __cdecl operator delete(void *)" (??3@YAXPEAX@Z) 中被引用
1>msvcrtd.lib(tncleanup.obj) : error LNK2019: 无法解析的外部符号 __std_type_info_destroy_list,该符号在函数 "void __cdecl __scrt_uninitialize_type_info(void)" (?__scrt_uninitialize_type_info@@YAXXZ) 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _seh_filter_dll,该符号在函数 __scrt_dllmain_exception_filter 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _configure_narrow_argv,该符号在函数 "public: static int __cdecl __scrt_narrow_argv_policy::configure_argv(void)" (?configure_argv@__scrt_narrow_argv_policy@@SAHXZ) 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _initialize_narrow_environment,该符号在函数 "public: static int __cdecl __scrt_narrow_environment_policy::initialize_environment(void)" (?initialize_environment@__scrt_narrow_environment_policy@@SAHXZ) 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _initialize_onexit_table,该符号在函数 __scrt_initialize_onexit_tables 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _register_onexit_function,该符号在函数 _onexit 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _execute_onexit_table,该符号在函数 __scrt_dllmain_uninitialize_c 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _crt_atexit,该符号在函数 _onexit 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _crt_at_quick_exit,该符号在函数 at_quick_exit 中被引用
1>msvcrtd.lib(utility.obj) : error LNK2019: 无法解析的外部符号 _cexit,该符号在函数 __scrt_dllmain_uninitialize_c 中被引用
1>msvcrtd.lib(utility_desktop.obj) : error LNK2019: 无法解析的外部符号 terminate,该符号在函数 __scrt_unhandled_exception_filter 中被引用
1>msvcrtd.lib(pdblkup.obj) : error LNK2019: 无法解析的外部符号 _wmakepath_s,该符号在函数 "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned __int64)" (?GetPdbDllPathFromFilePath@@YAHPEB_WPEA_W_K@Z) 中被引用
1>msvcrtd.lib(pdblkup.obj) : error LNK2019: 无法解析的外部符号 _wsplitpath_s,该符号在函数 "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned __int64)" (?GetPdbDllPathFromFilePath@@YAHPEB_WPEA_W_K@Z) 中被引用
1>msvcrtd.lib(pdblkup.obj) : error LNK2019: 无法解析的外部符号 wcscpy_s,该符号在函数 "int __cdecl GetPdbDllPathFromFilePath(wchar_t const *,wchar_t *,unsigned __int64)" (?GetPdbDllPathFromFilePath@@YAHPEB_WPEA_W_K@Z) 中被引用
1>msvcrtd.lib(pdblkup.obj) : error LNK2019: 无法解析的外部符号 __vcrt_GetModuleFileNameW,该符号在函数 "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPEAUHINSTANCE__@@XZ) 中被引用
1>msvcrtd.lib(pdblkup.obj) : error LNK2019: 无法解析的外部符号 __vcrt_GetModuleHandleW,该符号在函数 "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPEAUHINSTANCE__@@XZ) 中被引用
1>msvcrtd.lib(pdblkup.obj) : error LNK2019: 无法解析的外部符号 __vcrt_LoadLibraryExW,该符号在函数 "struct HINSTANCE__ * __cdecl GetPdbDll(void)" (?GetPdbDll@@YAPEAUHINSTANCE__@@XZ) 中被引用
解决方法:
因为使用的是Microsoft Windows SDK for Windows 7,但是编译代码时,选择了其他版本的Windows SDK,导致编译时链接的运行时库版本不一致,进而出现链接错误。因此,只需在编译时,一律使用Windows7.1SDK即可。
转载请注明来源,谢谢。
有偿解决C++编程问题,承接项目定制开发;寻一份全职或兼职Windows C++开发工作。联系邮箱:[email protected]。
老刀的技术日志 » VC2022+windows sdk 7 + directshow编译错误:strmbasd.lib(winutil.obj) : error LNK2019: 无法解析的外部符号 memcmp,该符号在函数 “public: __cdecl CImagePalette::CImagePalette(class CBaseFilter *,class CBaseWindow *,class CDrawImage *)” (??0CImagePalette@@QEAA@PEAVCBaseFilter@@PEAVCBaseWindow@@PEAVCDrawImage@@@Z) 中被引用