我正在尝试使我们的应用程序在 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 的东西,但是:
- 它需要与libudev链接(交叉编译库的目录中不存在,我不知道从哪里得到它)
- 我不认为这是我需要的:)
谢谢您的帮助