查看完整版本: [-- 请教下大佬们qt android怎么编译ffmpeg库 --]

QTCN开发网 -> Qt移动平台开发 -> 请教下大佬们qt android怎么编译ffmpeg库 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

koniue 2022-08-08 22:29

请教下大佬们qt android怎么编译ffmpeg库

本来是想在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: *** [Makefile:254: libandroid-test_armeabi-v7a.so] 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"

liudianwu 2022-08-09 09:22
注意位数

koniue 2022-08-10 22:05
liudianwu:注意位数 (2022-08-09 09:22) 

大佬能详细的说下嘛

20091001753 2022-08-11 09:41
就像在 Win系统里,dll 会有 32位 和 64位 的区别。

同理,安卓系统,.a 文件也有类似的区别,armv7 是 32位,armv8 是 64位。

koniue 2022-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-a  android build platforms 29
结果还是报错




查看完整版本: [-- 请教下大佬们qt android怎么编译ffmpeg库 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled