gpt4 book ai didi

c++ - 如何交叉编译 arm video for linux 和 udev

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:05 28 4
gpt4 key购买 nike

我正在尝试让我们的应用程序在 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

关于c++ - 如何交叉编译 arm video for linux 和 udev,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52091413/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com