libyuv官方编译步骤
libyuv是Google开源的实现各种YUV与RGB之间相互转换、旋转、缩放的库。它是跨平台的,可在Windows、Linux、Mac、Android等操作系统,x86、x64、arm架构上进行编译运行,支持SSE、AVX、NEON等SIMD指令加速。最近手上有个项目需要把RGB像素转换为YUV I420,得知libyuv采用了CPU的SIMD指令集,可以大幅提高转换的效率,减少耗时。最开始使用的是cmake生成Visual Studio 项目进行编译,这种编译方法网上有很多,也是最为方便和快速的,但是会出现一些问题:如果编译64位版本,由于VisualStudio不支持64位内联,导致无法启用SIMD指令集,转码效率大幅下降。通过一番查找,决定试用Google官方的编译方法,在此贴上一个官方的地址:https://chromium.googlesource.com/libyuv/libyuv/+/master/docs/getting_started.md ,按照官方步骤编译发现坑不少,编译过程遇到一些阻碍,在此分享一个比较完整的步骤:1、请使用Windows 7 系统配合 Visual Studio 2015进行 , Windows 10会出现莫名其妙报错 ,请确保你的网络可以进行访问Google相关网站,自行准备梯子。2、安装Windows 10 SDKhttps://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk通过官方文档要求,下载depot_tools工具http://commondatastorage.googleapis.com/chrome-infra- docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up下载后解压到本地 如 "C:/depot_tools",并设置系统环境变量 在PATH 最后添加该目录,并新建一个环境变量
3、运行 CMD 进入depot_tools目录 ,执行两次gclient 命令 ,成功则如下图显示
4、到此工具已经安装完毕,新建一个目录来同步 libyuv源码 ,如 C:/libyuv 请确保网络通畅,并通过 命令行 进入该目录Powered by Ad.Plus5、根据官网文档进行代码同步工作,输入以下两行命令gclient config --name src https://chromium.googlesource.com/libyuv/libyuvgclient sync由于代码比较大,大约有3G多 同步时间比较长,正确结果如下6、进入libyuv/src 建立out/Release 、 out/Debug 目录 ,执行以下命令生成,第一条为生成Release版本,第二条为Debug版本call gn gen out\Release "--args=is_debug=false target_cpu=\"x64\""call gn gen out\Debug "--args=is_debug=true target_cpu=\"x64\""ninja -v -C out\Releaseninja -v -C out\Debug期间会出现报错 subcommand failed进入 C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64 拷贝 mt.exe 、rc.exe 、rcdll.dll 如果编译x86版本则进入x86目录粘贴到C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin 目录下的所有有关64位的目录下,如果编译x86则粘贴到x86目录下7、重新执行编译命令即可生成转载请注明出处