2016-04-28 69 views
4

有沒有一種方法可以配置爲無需版本號後綴的android構建ffmpeg共享庫?即時通訊能夠建立不同的選項,但總是得到像「libavcodec.so.57」的文件。我需要沒有後綴的庫,比如「libavcodec.so」。我認爲選項「--disable-symver」會做的伎倆,但不幸的是它沒有。問題是我有一個庫(.so文件),依賴ffmpeg共享庫沒有後綴,因此無法加載那些即時通訊構建。 我主要關注指示here如何構建不帶版本號後綴的ffmpeg共享庫

回答

5

問問題導致總是找到答案。這就是爲什麼我成功了,挖掘了幫助製作文件。做到以下幾點:

  • 運行配置
  • 發現 「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 )」

  • 「使安裝」

你現在應該已經共享庫沒有後綴。
您可以通過 「readelf -d somefile.so」

1

無需檢查他們的依賴關係,config.mak改變

只需添加--target-OS = Android的配置呼叫

我的例子

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生成版本號 –

相關問題