mac android ffmpeg,macos - Compiling ffmpeg for android on Mac - Stack Overflow

I tried to compile ffmpeg for android on Mac, but it does not work for me.

#!/bin/bash

NDK=/Users/user/Library/Android/sdk/ndk-bundle

SYSROOT=$NDK/platforms/android-18/arch-arm/

TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-shared \

--disable-static \

--disable-doc \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffprobe \

--disable-network \

--disable-filters \

--disable-avdevice \

--disable-doc \

--disable-symver \

--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \

--target-os=linux \

--arch=arm \

--enable-cross-compile \

--sysroot=$SYSROOT \

--extra-cflags="-Os -fpic $ADDI_CFLAGS" \

--extra-ldflags="$ADDI_LDFLAGS" \

$ADDITIONAL_CONFIGURE_FLAG

make clean all

make

make install

}

CPU=arm

PREFIX=$(pwd)/android/$CPU

ADDI_CFLAGS="-marm"

build_one

I also give execute permission via chmod +x build_script.sh

I tried ffmpeg 4.1 and 4.0.3 but both are not work and same error reason.

I also tried on android-21 and android-18

test_cpp_condition stddef.h defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4

test_cpp

BEGIN /tmp/ffconf.bgSdFwkD/test.c

1 #include

2 #if !(defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4)

3 #error "unsatisfied condition: defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4"

4 #endif

END /tmp/ffconf.bgSdFwkD/test.c

/Users/user/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/Users/user/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/ -Os -fpic -marm -E -o /tmp/ffconf.bgSdFwkD/test.o /tmp/ffconf.bgSdFwkD/test.c

/tmp/ffconf.bgSdFwkD/test.c:3:2: error: "unsatisfied condition: defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4"

#error "unsatisfied condition: defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4"

^

1 error generated.

test_cpp_condition stddef.h defined __ARM_ARCH_4T__ || defined __TARGET_ARCH_4T

test_cpp

BEGIN /tmp/ffconf.bgSdFwkD/test.c

1 #include

2 #if !(defined __ARM_ARCH_4T__ || defined __TARGET_ARCH_4T)

3 #error "unsatisfied condition: defined __ARM_ARCH_4T__ || defined __TARGET_ARCH_4T"

4 #endif

END /tmp/ffconf.bgSdFwkD/test.c

/Users/user/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/Users/user/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/ -Os -fpic -marm -E -o /tmp/ffconf.bgSdFwkD/test.o /tmp/ffconf.bgSdFwkD/test.c

test_ld cc

test_cc

BEGIN /tmp/ffconf.bgSdFwkD/test.c

1 int main(void){ return 0; }

END /tmp/ffconf.bgSdFwkD/test.c

/Users/user/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/Users/user/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/ -Os -fpic -marm -march=armv4t -c -o /tmp/ffconf.bgSdFwkD/test.o /tmp/ffconf.bgSdFwkD/test.c

/Users/user/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/Users/user/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/ -march=armv4t -o /tmp/ffconf.bgSdFwkD/test /tmp/ffconf.bgSdFwkD/test.o

ld: unknown option: --sysroot=/Users/user/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm/

clang: error: linker command failed with exit code 1 (use -v to see invocation)

C compiler test failed.

Is there any tools/Applications or libraries I have to additionally install for compiling? I'm confused.... (THIS QUESTION IS MAY DUPLICATE BUT NONE OF SOLUTION WAS WORKED FOR ME)

EDIT To clarify my system environment.

Mac OS X High Sierra (10.13.6)

Android NDK (18.1.5063045)

Android SDK Tools and SDK Build-Tools

CMake

EDIT I also tried ffmpeg version 3.3.9 but it does not work either.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值