2016-04-28 10 views
4

バージョン番号サフィックスなしでアンドロイド用のffmpeg共有ライブラリを構築する方法はありますか?さまざまなオプションでビルドできますが、常に "libavcodec.so.57"のようなファイルを取得できます。私は "libavcodec.so"のような接尾辞の付いていないライブラリが必要です。私は "--disable-symver"オプションがトリックを行うと思ったが、残念ながらそれはしなかった。問題は、私はサフィックスなしでffmpeg共有ライブラリに依存するライブラリ(.soファイル)を持っているため、ビルドされているそれらを読み込むことができないということです。 私はほとんど指示書hereに従っています。バージョンサフィックスなしでffmpeg共有ライブラリを構築する方法

答えて

5

質問すると常に回答が得られます。それが私が成功した理由です。makeファイルを掘り下げて助けました。

  • 検索 "config.mak"
  • 変更

    SLIBNAME_WITH_VERSION = $(SLIBNAME)$(LIBVERSION) SLIBNAME_WITH_MAJOR = $(SLIBNAME)設定を実行します。次の手順を実行します。 $(LIBMAJOR)

    へ:

    SLIBNAME_WITH_VERSION = $(SLIBNAME)
    SLIBNAME_WITH_MAJOR = $(SLIBNAME)へ

  • 変更

    SLIB_INSTALL_NAME = $(SLIBNAME_WITH_VERSION) SLIB_INSTALL_LINKS = $(SLIBNAME_WITH_MAJOR)$(SLIBNAME)

    SLIB_INSTALL_NAME = $(SLIBNAME )
    SLIB_INSTALL_LINKS =

  • "make"または "make -j $(nproc )」

  • "今、あなたは接尾辞なしでライブラリを共有しているだろう"

をインストールします。

ジャスト--target-OSを追加
あなたは=アンドロイド
コールを設定するconfig.mak変更する "readelfが-d somefile.so"

1

不要でそれらの依存関係を確認することができます

私の例

NDK=${HOME}/android-sdk-linux/ndk-bundle 
ABI=arm 

./configure \ 
    --arch=$ABI \ 
    --target-os=android \ 
    --disable-everything \ 
    --disable-symver \ 
    --enable-runtime-cpudetect \ 
    --enable-pic \ 
    --enable-shared \ 
    --disable-static \ 
    --prefix=../build/$ABI \ 
    --cross-prefix=$NDK/toolchains/$ABI-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/$ABI-linux-androideabi- \ 
    --sysroot=$NDK/platforms/android-26/arch-$ABI \ 
    --extra-cflags="-march=armv7-a -mfloat-abi=softfp -fPIC -DANDROID" \ 
    --extra-ldflags="" \ 
    || exit 1 

    make clean 
    make -j4 || exit 1 
    make install || exit 1 
+0

これはすばらしい答えです。パッチを維持する必要はありません。 target-os = androidのバージョン番号は一切生成されていません –

関連する問題