当前位置: 首页 > news >正文

libyuv之linux编译

文章目录

  • 一、下载源码
  • 二、编译源码
  • 三、注意事项
    • 1、银河麒麟系统(aarch64)
      • (1)解决 armv8-a+dotprod+i8mm 指令集支持问题
      • (2)解决 armv9-a+sve2 指令集支持问题

一、下载源码

到GitHub网站下载https://github.com/lemenkov/libyuv源码,或者用直接用git克隆到本地,如:git clone https://github.com/lemenkov/libyuv.git

二、编译源码

进入到libyuv目录,执行

cd libyuv
mkdir build && cd build 
cmake ..
make
make install 

三、注意事项

1、银河麒麟系统(aarch64)

(1)解决 armv8-a+dotprod+i8mm 指令集支持问题

[ 68%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_msa.cc.o
[ 70%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o
[ 71%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o
[ 73%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o
[ 75%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o
[ 77%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o
[ 77%] Built target yuv_common_objects
[ 78%] Building CXX object CMakeFiles/yuv_neon64.dir/source/compare_neon64.cc.o
cc1plus: 错误:invalid feature modifier in ‘-march=armv8-a+dotprod+i8mm’
make[2]: *** [CMakeFiles/yuv_neon64.dir/build.make:76:CMakeFiles/yuv_neon64.dir/source/compare_neon64.cc.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:123:CMakeFiles/yuv_neon64.dir/all] 错误 2
make: *** [Makefile:156:all] 错误 2
root@dev-pc:/opt/libyuv/build#

这是由于CPU不支持armv8-a+dotprod+i8mm指令集,因此需要修改CMakeLists.txt文件,添加宏定义add_definitions(-DLIBYUV_DISABLE_NEON=1),同时去掉Neon相关的代码编译工作,如下:
在这里插入图片描述

(2)解决 armv9-a+sve2 指令集支持问题

[ 73%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_msa.cc.o
[ 75%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o
[ 77%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o
[ 79%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o
[ 81%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o
[ 83%] Building CXX object CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o
[ 83%] Built target yuv_common_objects
[ 84%] Building CXX object CMakeFiles/yuv_sve.dir/source/row_sve.cc.o
cc1plus: 错误:unknown value ‘armv9-a+sve2’ for -march
cc1plus: 附注:valid arguments are: armv8-a armv8.1-a armv8.2-a armv8.3-a; did you mean ‘armv8-a’?
make[2]: *** [CMakeFiles/yuv_sve.dir/build.make:76:CMakeFiles/yuv_sve.dir/source/row_sve.cc.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:121:CMakeFiles/yuv_sve.dir/all] 错误 2
make: *** [Makefile:156:all] 错误 2

这是由于CPU不支持armv9-a+sve2指令集,因此需要修改CMakeLists.txt文件,添加宏定义add_definitions(-DLIBYUV_DISABLE_SVE=1),同时去掉SVE相关的代码编译工作,如下:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【揭秘Java】线程安全中的有序性之谜
  • 信通院发布首个《大模型媒体生产与处理》标准,阿里云智能媒体服务作为业界首家“卓越级”通过
  • 树莓派智能语音助手实现音乐播放
  • TSRPC+Cocos
  • 在react中 使用redux
  • 2024年最新软件测试学习路线图(从入门到精通)
  • 利用长度选择器优化Prompt示例选择:提升AI对话效率
  • python实现多个pdf文件合并
  • docker镜像结构
  • pikachu下
  • Redis常用操作及springboot整合redis
  • 监听html元素是否被删除,删除之后重新生成被删除的元素
  • Django_Vue3_ElementUI_Release_004_使用nginx部署
  • C编程控制PC蜂鸣器
  • 【乐企-业务篇】开票前置校验服务-规则链服务接口实现(纳税人基本信息)
  • 【css3】浏览器内核及其兼容性
  • CentOS7 安装JDK
  • Django 博客开发教程 8 - 博客文章详情页
  • Git的一些常用操作
  • js面向对象
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Vue小说阅读器(仿追书神器)
  • webgl (原生)基础入门指南【一】
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 反思总结然后整装待发
  • 解决iview多表头动态更改列元素发生的错误
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我的zsh配置, 2019最新方案
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在weex里面使用chart图表
  • 自制字幕遮挡器
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #QT 笔记一
  • #QT(QCharts绘制曲线)
  • #window11设置系统变量#
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (~_~)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (南京观海微电子)——COF介绍
  • (四)软件性能测试
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net core 6.0 升8.0
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net IOC框架入门之一 Unity
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .project文件
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @Pointcut 使用