首页| 论坛| 消息

标题:请教下大佬们qt android怎么编译ffmpeg库
作者:koniue
日期:2022-08-08 22:29
内容:

本来是想在windows编译ffmpeg库的,结果按照教程没编出来,然后想转移到ubuntu下,结果库是编成了,但是用的时候报错了,请教下大家这是怎么回事
环境:
Qt5.15.2
jdk1.8.0_341
ndk/21.3.6528147
android_openssl
之前用的是动态库,后来改成了静态库:
INCLUDEPATH += $$PWD/ffmpeg/include
DEPENDPATH += $$PWD/ffmpeg

LIBS += $$PWD/ffmpeg/lib/libavcodec.a
LIBS += $$PWD/ffmpeg/lib/libavdevice.a
LIBS += $$PWD/ffmpeg/lib/libavfilter.a
LIBS += $$PWD/ffmpeg/lib/libavformat.a
LIBS += $$PWD/ffmpeg/lib/libavutil.a
LIBS += $$PWD/ffmpeg/lib/libpostproc.a
LIBS += $$PWD/ffmpeg/lib/libswresample.a
LIBS += $$PWD/ffmpeg/lib/libswscale.a

结果都报错:
:-1: error: linker command failed with exit code 1 (use -v to see invocation)clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** Error 1
:-1: Error while building/deploying project android-test (kit: Android Qt 5.15.2 Clang Multi-Abi)Error while building/deploying project android-test (kit: Android Qt 5.15.2 Clang Multi-Abi)The kit Android Qt 5.15.2 Clang Multi-Abi has configuration issues which might be the root cause for this problem.When executing step "Make&q ..


#1 [liudianwu 08-09 09:22]
注意位数
#2 回 liudianwu 的帖子 [koniue 08-10 22:05]
liudianwu:注意位数 (2022-08-09 09:22) 
大佬能详细的说下嘛
#3 [20091001753 08-11 09:41]
就像在 Win系统里,dll 会有 32位 和 64位 的区别。
同理,安卓系统,.a 文件也有类似的区别,armv7 是 32位,armv8 是 64位。
#4 回 20091001753 的帖子 [koniue 08-11 20:52]
20091001753:
就像在 Win系统里,dll 会有 32位 和 64位 的区别。
同理,安卓系统,.a 文件也有类似的区别,armv7 是 32位,armv8 是 64位。
#!/bin/bash

export NDK=/home/Android/Sdk/ndk/21.3.6528147 #这里配置先你的 NDK 路径
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64

#arm64-v8a
ARCH=arm64
CPU=armv8-a
API=29
CC=$TOOLCHAIN/bin/clang
CXX=$TOOLCHAIN/bin/clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/
PREFIX=$(pwd)/android/$CPU/$API
OPTIMIZE_CFLAGS="-march=$CPU"


function build_android
{

./configure \
--prefix=$PREFIX \
--enable-neon\
--enable-hwaccels\
--enable-gpl \
--disable-debug \
--enable-small \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-static \
--enable-shared \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-symver \
--cross-prefix=$CROSS_PREFIX \
--target-os=android \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS"

make clean
make -j16
make install

echo "============================ build android $CPU->$API success =========================="

}

build_android

这是我的编译脚本qt编译用的是armv8-aandroid build platforms 29
结果还是报错

回复 发表
主题 版块