gpt4 book ai didi

android-ndk - Android Ndk & FFMPEG - 无法在 ubuntu x86 上编译

转载 作者:行者123 更新时间:2023-12-04 23:16:44 25 4
gpt4 key购买 nike

我正在关注这个:
roman10's android ndk r9d - ffmpeg tutorial
我能够运行 build_android.sh 脚本..但它没有在我的源/ffmpeg 文件夹中创建那个“android”文件夹!!
我应该怎么办?请帮助我。

另一个疑问: .sh 文件中的“arm”应该根据机器环境进行更改????如果是这样的话,你能指导我们使用 x86 吗???

我的 build_android.sh 文件:

#!/bin/bash
NDK=/home/NDK/android-ndk-r9d
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-arm
function build_one
{
sudo ./configure \
--target-os=linux \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=i686
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

我正在使用 Ndk r10、ffmpeg 2.5.4、ubuntu x86。

谢谢你的时间。

帕拉克。

最佳答案

这是我为 x86 构建的脚本和 arm .似乎我使用的脚本与您尝试用作基础的脚本相同。如果您只需要 x86,则注释第一个 build_one在脚本的底部。

它在 Mac 上使用 NDK r10 进行了测试,但也应该在 Ubuntu 上运行。

#!/bin/bash

NDK_PLATFORM_LEVEL=9
NDK_COMPILER_VERSION=4.8
NDK_ABI=arm

# Android now has 64-bit and 32-bit versions of the NDK for GNU/Linux. We
# assume that the build platform uses the appropriate version, otherwise the
# user building this will have to manually set NDK_PROCESSOR or NDK_TOOLCHAIN.
if [ $(uname -m) = "x86_64" ]; then
NDK_PROCESSOR=x86_64
else
NDK_PROCESSOR=x86
fi

NDK_UNAME=`uname -s | tr '[A-Z]' '[a-z]'`


NDK=$ANDROID_NDK_ROOT

function build_one
{
if [ $NDK_ABI = "x86" ]; then
HOST=i686-linux-android
NDK_TOOLCHAIN=$NDK_ABI-$NDK_COMPILER_VERSION
else
HOST=$NDK_ABI-linux-androideabi
NDK_TOOLCHAIN=$HOST-$NDK_COMPILER_VERSION
fi

SYSROOT=$NDK/platforms/android-$NDK_PLATFORM_LEVEL/arch-$NDK_ABI/
TOOLCHAIN=$NDK/toolchains/$NDK_TOOLCHAIN/prebuilt/$NDK_UNAME-$NDK_PROCESSOR
echo sysroot=$SYSROOT
echo prefix=$PREFIX

make distclean > /dev/null 2>&1

./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-debug \
--disable-stripping \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/$HOST- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--enable-pic \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j16
make install
}

CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
ADDITIONAL_CONFIGURE_FLAG="--cpu=cortex-a8"
build_one

NDK_ABI=x86
CPU=i686
PREFIX=$(pwd)/android/x86
ADDI_CFLAGS="-pipe -march=atom -msse3 -ffast-math -mfpmath=sse"
ADDI_LDFLAGS="-lm -lz -Wl,--no-undefined -Wl,-z,noexecstack"
ADDITIONAL_CONFIGURE_FLAG="--arch=x86 --cpu=i686"

build_one

我也确实替换了 configure 中的行, 以 SLIBNAME 开头, 用这些。本教程也提到了这一点。
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
SLIBNAME_WITH_VERSION='$(SLIBNAME)'
SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME)'
SLIB_INSTALL_LINKS=

关于android-ndk - Android Ndk & FFMPEG - 无法在 ubuntu x86 上编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28562703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com