当前位置: 首页 > 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相关的代码编译工作,如下:
在这里插入图片描述

http://www.lryc.cn/news/440874.html

相关文章:

  • vue3路由基本使用
  • 哪些人适合学习人工智能?
  • 计算机的错误计算(九十七)
  • Flask-Migrate的使用
  • python怎么输入整数
  • 代码随想录打卡Day36
  • 速盾:凡科建站开cdn了吗?
  • python贪吃蛇游戏项目源码【免费】
  • Mycat搭建分库分表
  • Python中的数据结构
  • mysql笔记8(多表查询)
  • typescript-tsconfig文件解释
  • 所有用贪心的算法和所有用动态规划(dp)的算法合集
  • 论文阅读 | 基于流模型和可逆噪声层的鲁棒水印框架(AAAI 2023)
  • 上线跨境电商商城的步骤
  • Python基础(七)——PyEcharts数据分析(面向对象版)
  • 滚雪球学SpringCloud[5.1讲]: Spring Cloud Config详解
  • Unity常用随机数算法
  • dial unix /var/run/docker.sock: connect: permission denied
  • Prompt提示词技巧
  • 滑动窗口(6)_找到字符串中所有字母异位词
  • 【无标题】rocket
  • Maven国内镜像(四种)
  • Linux环境中如何快速修改 JAR 包中的配置文件
  • java高频面试题(2024最新)
  • WEB 编程:使用富文本编辑器 Quill 配合 WebBroker 后端
  • 新书出版,大陆首本NestJS图书《NestJS全栈开发解析:快速上手与实践》
  • 面试题:react、vue中的key有什么作用?(key的内部原理)
  • 基于python+django+vue的外卖管理系统
  • 初始分布式系统和Redis特点(