2016-07-01 84 views
3

最新版本的FFmpeg3.1.13.1版本後,我不能編譯FFmpegx86。(但3.0.2或更早的版本可以被編譯。)使用Android編譯FFmpeg 3.1.1 for x86 NDK

終端顯示ld: error: libavutil/../compat/strtod.o: incompatible target

我的操作系統是Xubuntu 14.04 x86x86_64。(我已經試過他們兩個。)

NDK版本是r10e(x86)r12b(x86_64)

當我編譯FFmpeg 3.0.2時,它沒有錯誤。

這是我的配置:

./configure \ 
--prefix="${PREFIX}" \ 
--enable-shared \ 
--disable-static \ 
--disable-doc \ 
--disable-ffplay \ 
--disable-ffprobe \ 
--disable-ffserver \ 
--cross-prefix="${PREFIX}/bin/i686-linux-android-" \ 
--target-os=linux \ 
--arch=x86 \ 
--enable-cross-compile \ 
--sysroot="${PREFIX}/sysroot" \ 
--extra-cflags="" \ 
--extra-ldflags="" \ 
--extra-libs="" \ 
--disable-debug 

${PREFIX}是用於在運行make-standalone-toolchain.sh--install-dir選項,這是Android的NDK工具的目錄路徑。

它只發生在編譯FFmpegx86ARM建築是好的。

回答

9

我遇到了同樣的問題,並找到了解決方法。如果您以前爲其他體系結構構建過,請務必刪除「compat/strtod.o」和「compat/strtod.d」。出於某些原因,如果您在3.1.1中更改體系結構,則不會重新構建這些體系結構,但它在以前的版本中運行良好。你應該在建造之前做一個「乾淨的」。

+0

你解決了我的問題。謝謝〜 – user3032481

+2

@Dave你救了我的命,大概6個小時吧。 –

+0

我在我的腳本「rm compat/strtod.o rm compat/strtod.d」中這樣做了,現在我不必擔心這個問題,很煩人,說實話不容易搞清楚,謝謝 – Diljeet