工具/软件:Linux
我目前正在使用 AM-335X Devkit 进行游戏、并希望从我的笔记本电脑网络摄像头流式传输视频内容以显示在评估板上。 FFMPEG 似乎具有我需要/需要的所有功能:编码、解码和网络流。
但是、我需要使 FFmpeg 在目标平台上运行。 我克隆了 git repo、可以成功为我的主机系统构建下载的文件。 到目前为止、我无法交叉编译 FFmpeg、但我能够为目标 ARM 架构编译一个简单的 hello world 程序(使用 readelf 验证的架构) )。
使用 make 为 AMDx64编译 FFmpeg、即使我以前运行过环境设置脚本(并且我使用的是运行脚本的控制台)也是如此。 呼叫
[Linux-Devkit]:/usr/bin arm-linux-gnueabihf-gcc ffmpeg.c -o ffmpeg_arm
导致编译第一个文件时出错:
/tmp/ccIBQibC.s:汇编器消息:
/tmp/ccIBQibC.s:242:错误:Ungültige Anweisung»cmovg R3、R2«
/tmp/ccIBQibC.s:243:错误:Ungültige Anweisung»cmovg R1、R3«
/tmp/ccIBQibC.s:245:错误:Ungültige Anweisung»cmovl r0、R3«
/tmp/ccIBQibC.s:247:错误:Ungültige Anweisung»cmovg r3、r2«
(无效的«:»...)
调用 make、使用 CC=...传递编译器路径变量 似乎是另一种选择、因此我尝试了:
[Linux-Devkit]:~/Downloads/ffmpeg-3.2.4 sudo make CC=/opt/ti/linuxSDK/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-gcc
一些文件是在进程终止前构建的:
cc libavfilter/vf_mimalation.o
/tmp/ccsCzqRV.s:汇编器消息:
/tmp/ccsCzqRV.s:1529:错误:Ungültige Anweisung»cmovg IP、R5«
/tmp/ccsCzqRV.s:1530:错误:Ungültige Anweisung»cmovg r7、ip«
/tmp/ccsCzqRV.s:1532:错误:Ungültige Anweisung»cmovl R2、IP«
我猜我会错过或误解某些内容(希望我尝试的内容不是不可能的)。
如果你们有任何关于可能出现的问题或问题/资源的提示/想法、可能会让我注意到缺失的信息、那就非常高兴!
>>>编辑<<<
sudo make CC=/opt/ti/linuxSDK/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-gcc
不事先运行环境设置会导致不同的错误:
cc libavdevice/v4l2enc.o
cc libavdevice/xcbgra.o
libavdevice/xcbgra.c:25:21:致命错误:xcb/xcb.h:无此类文件或目录
编译已终止。
common.mak:60:Die Regel für Ziel„libavdevice/xcbgraf.o " scheiterte
make:***[libavdevice/xcbgra.o] Fehler 1.