如何为linux和udev的arm视频交叉编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为linux和udev的arm视频交叉编译相关的知识,希望对你有一定的参考价值。

我试图让你的应用程序在Arm设备上工作,规格:

Architecture:          aarch64
Byte Order:            Little Endian
Model name:            ARMv8 Processor rev 3 (v8l)

为此,我安装了必要的交叉编译器

sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

既然我们使用Qt,我也为这个特定的架构交叉编译Qt:

./configure -xplatform linux-aarch64-gnu-g++ -opensource 
  -confirm-license -nomake tests -nomake examples -static 
  -skip qtwebengine -release -prefix /opt/qt5-arm -no-xcb 
  -no-opengl -no-use-gold-linker

我们的应用程序链接到linux的视频,所以我们有以下编译行:

aarch64-linux-gnu-g++  -o bin/executable <removed unimportant stuff>... 
   -lv4l2 -lv4lconvert -L/opt/qt5-arm/plugins/imageformats -lqgif 
   -L/opt/qt5-arm/lib -lqicns -lqico -lqjpeg -lQt5DBus 
   -lQt5Gui -lqtlibpng -lqtharfbuzz -lQt5Network -lQt5Core 
   -lm -lqtpcre2 -ldl -lpthread 

由于我没有交叉编译Linux的视频显然我有以下错误消息:

/usr/bin/aarch64-linux-gnu-ld: cannot find -lv4l2
/usr/bin/aarch64-linux-gnu-ld: cannot find -lv4lconvert
collect2: error: ld returned 1 exit status

以下是问题:

从哪里获取video4linux的源代码,以及如何为我的架构交叉编译它们?请注意,我发现了一些来自https://www.linuxtv.org/downloads/的名为v4l-utils的内容,但是:

  1. 它需要链接libudev(它不存在于交叉编译库的目录中,我不知道从哪里获取它)
  2. 我不认为这是我的要求:)

谢谢您的帮助

答案

ld无法找到v4l软件包,您需要在构建系统中安装软件包或手动下载软件包并提供路径。

sudo apt install v4l-utils

如果您输入命令which v4l2安装软件包后,它将提供安装它的路径,您将知道您拥有所需的库。

您也可以从该站点下载该软件包。 https://packages.debian.org/sid/v4l-utils


v4l2的源代码是linux内核驱动程序v4l2的一部分

以上是关于如何为linux和udev的arm视频交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

RTSP/Onvif协议EasyNVR视频平台ARM版交叉编译过程及常见报错处理

linux下ffmpeg库 ARM交叉编译

arm-linux-gcc交叉编译器的制作,以及版本选择问题。

[Mini2440 - 008] 安装 arm-linux-gcc 交叉编译器

如何为 ARM Cortex M7 编译和调试 ASM 代码?

我的数码相框.c文件用arm-linux-gcc交叉编译时出现错误,如tgzip.c:309:undefined reference to