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位版本,由于Visual Studio不支持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 SDK

https://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 最后添加该目录,并新建一个环境变量  

libyuv官方编译步骤_第1张图片


3、运行 CMD 进入depot_tools目录 ,执行两次gclient 命令 ,成功则如下图显示

libyuv官方编译步骤_第2张图片


4、到此工具已经安装完毕,新建一个目录来同步 libyuv源码 ,如 C:/libyuv 请确保网络通畅,并通过 命令行 进入该目录


5、根据官网文档进行代码同步工作,输入以下两行命令

gclient config --name src https://chromium.googlesource.com/libyuv/libyuv
gclient 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\Release
ninja -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、重新执行编译命令即可生成


转载请注明出处







你可能感兴趣的:(libyuv官方编译步骤)