全志t113交叉编译移植ffmpeg报错
-
我在ubuntu18上面编译ffmpeg,希望移植到全志开发板执行,遇到了一个问题,上网找了很多资料都无法解决,有哪位大佬可以指导一下吗,万分感谢~
编译脚本如下: ./configure \ --enable-cross-compile \ --target-os=linux \ --cc=/home/meetyoo/t113/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-gcc \ --strip=/home/meetyoo/t113/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-strip \ --arch=arm \ --prefix="$HOME/ffmpeg7.1_arm_build" \ --bindir="$HOME/ffmpeg7.1_arm_bin" \ --enable-ffmpeg \ --enable-shared \ --disable-static \ --enable-pic \ --extra-cflags="-I/root/ffmpeg7.1_arm_build/include \ -I/home/meetyoo/t113/Tina-Linux/out/t113-bingpi_m2/staging_dir/target/usr/include \ -I/home/meetyoo/t113/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/include" \ --extra-ldflags="-L/root/ffmpeg7.1_arm_build/lib \ -L/home/meetyoo/t113/Tina-Linux/out/t113-bingpi_m2/staging_dir/target/usr/lib \ -L/home/meetyoo/t113/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/lib" \ --extra-libs="-lpthread -lm" \ --enable-gpl \ --enable-nonfree \ --disable-optimizations \ --disable-stripping
#编译出来ffmpeg执行文件复制到全志开发板:
adb push $HOME/ffmpeg7.1_arm_build/lib /root/ffmpeg7.1_arm_build/lib
adb push $HOME/ffmpeg7.1_arm_bin/ffmpeg /root/ffmpeg7.1_arm_build/lib/#adb链接开发板
adb shell#设置LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/root/ffmpeg7.1_arm_build/lib:$LD_LIBRARY_PATH#执行ffmpeg报错
-
@xiaomifeng Exec format error感觉像加载库时不是arm对应版本,首先你确定能找到这些库,能找到后,使用file libswscale.so.8.6.100类似命令,看库的类型是什么?正确的应该类似如下:
libswscale.so.8.6.100: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, for GNU/Linux 3.17.0, stripped
不正确的话,可能是编译的时候会正确的设置--cross-prefix=arm-none-linux-gnueabihf-指定编译工具。 -
@jasonzhang 我的板子的厂商提供的虚拟机环境提供了5个交叉编译工具链,如下:
drwxr-xr-x 3 meetyoo meetyoo 4096 Mar 18 2022 toolchain-sunxi-arm9-glibc/ drwxr-xr-x 3 meetyoo meetyoo 4096 Mar 18 2022 toolchain-sunxi-arm9-musl/ drwxr-xr-x 3 meetyoo meetyoo 4096 Mar 18 2022 toolchain-sunxi-glibc/ drwxr-xr-x 3 meetyoo meetyoo 4096 Mar 18 2022 toolchain-sunxi-glibc-gcc-531/ drwxr-xr-x 3 meetyoo meetyoo 4096 Mar 18 2022 toolchain-sunxi-musl/
我每个工具链都试过了,厂商推荐使用toolchain-sunxi-musl,生成的.so文件和ffmpeg执行文件也使用file命令查看了,如下:
root@ubuntu:~/ffmpeg7.1_arm_build/lib# file libswscale.so.8.6.100 libswscale.so.8.6.100: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, with debug_info, not stripped root@ubuntu:~/ffmpeg7.1_arm_bin# file ffmpeg ffmpeg: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-armhf.so.1, with debug_info, not stripped root@ubuntu:~/ffmpeg7.1_arm_bin#
但是不知道为啥在开发板执行就是报上面的错误了。
-
@xiaomifeng 你的执行嵌入式环境ubuntu系统,不是buildroot这类,你可以用低于嵌入式ubuntu版本上glibc对应的标准arm-none-linux-gnueabihf-gcc,这个可以使用"https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/“,去下个低版本的安装就可以(低于嵌入式ubuntu上的arm-gcc)。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号