wertc 使用voice engine时,提示如下错误:
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _NV12ToRGB565 referenced in function "int __cdecl webrtc::ConvertNV12ToRGB565(unsigned char const *,unsigned char *,int,int)" (?ConvertNV12ToRGB565@webrtc@@YAHPBEPAEHH@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _RGB24ToARGB referenced in function "int __cdecl webrtc::ConvertRGB24ToARGB(unsigned char const *,unsigned char *,int,int,int)" (?ConvertRGB24ToARGB@webrtc@@YAHPBEPAEHHH@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _ConvertToI420 referenced in function "int __cdecl webrtc::ConvertToI420(enum webrtc::VideoType,unsigned char const *,int,int,int,int,int,enum webrtc::VideoRotationMode,class webrtc::I420VideoFrame *)" (?ConvertToI420@webrtc@@YAHW4VideoType@1@PBEHHHHHW4VideoRotationMode@1@PAVI420VideoFrame@1@@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _ConvertFromI420 referenced in function "int __cdecl webrtc::ConvertFromI420(class webrtc::I420VideoFrame const &,enum webrtc::VideoType,int,unsigned char *)" (?ConvertFromI420@webrtc@@YAHABVI420VideoFrame@1@W4VideoType@1@HPAE@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Mirror referenced in function "int __cdecl webrtc::MirrorI420LeftRight(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame *)" (?MirrorI420LeftRight@webrtc@@YAHPBVI420VideoFrame@1@PAV21@@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Copy referenced in function "int __cdecl webrtc::MirrorI420UpDown(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame *)" (?MirrorI420UpDown@webrtc@@YAHPBVI420VideoFrame@1@PAV21@@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Psnr referenced in function "double __cdecl webrtc::I420PSNR(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame const *)" (?I420PSNR@webrtc@@YANPBVI420VideoFrame@1@0@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Ssim referenced in function "double __cdecl webrtc::I420SSIM(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame const *)" (?I420SSIM@webrtc@@YANPBVI420VideoFrame@1@0@Z)
1>common_video.lib(scaler.obj) : error LNK2019: unresolved external symbol _I420Scale referenced in function "public: int __thiscall webrtc::Scaler::Scale(class webrtc::I420VideoFrame const &,class webrtc::I420VideoFrame *)" (?Scale@Scaler@webrtc@@QAEHABVI420VideoFrame@2@PAV32@@Z)
1>D:\Project\Webrtc_dev\audio_engine_hw\Debug\audio_engine_hw.exe : fatal error LNK1120: 9 unresolved externals
错误主要原因: 没有加入libyuv.lib
主要原因: 我只添加了build\Debug\lib或者build\Release\lib下的lib文件, 在此目录下没有找到libyuv.lib
在编译工程中发现:libyuv工程output目录指向为:..\..\build\$(Configuration) 所以libyuv.lib会生成在build\Debug\下。
而在build\Debug\lib下,是没有的。
solution:
1.手动拷贝到lib目录下。
2.修改配置文件为: ..\..\build\$(Configuration)\lib
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _NV12ToRGB565 referenced in function "int __cdecl webrtc::ConvertNV12ToRGB565(unsigned char const *,unsigned char *,int,int)" (?ConvertNV12ToRGB565@webrtc@@YAHPBEPAEHH@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _RGB24ToARGB referenced in function "int __cdecl webrtc::ConvertRGB24ToARGB(unsigned char const *,unsigned char *,int,int,int)" (?ConvertRGB24ToARGB@webrtc@@YAHPBEPAEHHH@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _ConvertToI420 referenced in function "int __cdecl webrtc::ConvertToI420(enum webrtc::VideoType,unsigned char const *,int,int,int,int,int,enum webrtc::VideoRotationMode,class webrtc::I420VideoFrame *)" (?ConvertToI420@webrtc@@YAHW4VideoType@1@PBEHHHHHW4VideoRotationMode@1@PAVI420VideoFrame@1@@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _ConvertFromI420 referenced in function "int __cdecl webrtc::ConvertFromI420(class webrtc::I420VideoFrame const &,enum webrtc::VideoType,int,unsigned char *)" (?ConvertFromI420@webrtc@@YAHABVI420VideoFrame@1@W4VideoType@1@HPAE@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Mirror referenced in function "int __cdecl webrtc::MirrorI420LeftRight(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame *)" (?MirrorI420LeftRight@webrtc@@YAHPBVI420VideoFrame@1@PAV21@@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Copy referenced in function "int __cdecl webrtc::MirrorI420UpDown(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame *)" (?MirrorI420UpDown@webrtc@@YAHPBVI420VideoFrame@1@PAV21@@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Psnr referenced in function "double __cdecl webrtc::I420PSNR(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame const *)" (?I420PSNR@webrtc@@YANPBVI420VideoFrame@1@0@Z)
1>common_video.lib(webrtc_libyuv.obj) : error LNK2019: unresolved external symbol _I420Ssim referenced in function "double __cdecl webrtc::I420SSIM(class webrtc::I420VideoFrame const *,class webrtc::I420VideoFrame const *)" (?I420SSIM@webrtc@@YANPBVI420VideoFrame@1@0@Z)
1>common_video.lib(scaler.obj) : error LNK2019: unresolved external symbol _I420Scale referenced in function "public: int __thiscall webrtc::Scaler::Scale(class webrtc::I420VideoFrame const &,class webrtc::I420VideoFrame *)" (?Scale@Scaler@webrtc@@QAEHABVI420VideoFrame@2@PAV32@@Z)
1>D:\Project\Webrtc_dev\audio_engine_hw\Debug\audio_engine_hw.exe : fatal error LNK1120: 9 unresolved externals
错误主要原因: 没有加入libyuv.lib
主要原因: 我只添加了build\Debug\lib或者build\Release\lib下的lib文件, 在此目录下没有找到libyuv.lib
在编译工程中发现:libyuv工程output目录指向为:..\..\build\$(Configuration) 所以libyuv.lib会生成在build\Debug\下。
而在build\Debug\lib下,是没有的。
solution:
1.手动拷贝到lib目录下。
2.修改配置文件为: ..\..\build\$(Configuration)\lib