【问题标题】:how to build ffmpeg shared libraries without version suffix如何构建没有版本后缀的ffmpeg共享库
【发布时间】:2016-08-23 01:25:16
【问题描述】:

有没有一种方法可以配置为没有版本号后缀的 android 构建 ffmpeg 共享库?我能够使用不同的选项进行构建,但总是得到像“libavcodec.so.57”这样的文件。我需要没有像“libavcodec.so”这样的后缀的库。我认为选项“--disable-symver”可以解决问题,但不幸的是它没有。问题是我有一个库(.so 文件),它依赖于没有后缀的 ffmpeg 共享库,因此无法加载那些我正在构建的库。 我主要遵循here 的说明。

【问题讨论】:

    标签: android ffmpeg shared-libraries


    【解决方案1】:

    提出问题总能找到答案。这就是我成功的原因,深入研究制作文件有帮助。执行以下操作:

    • 运行您的配置
    • 找到“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"

    【讨论】:

    • 我需要为 Linux 执行此操作。我没有修改 config.mak,而是修改了 configure 脚本来处理 Linux 的库名称,就像处理 Android 一样。
    【解决方案2】:

    无需更改 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
    

    【讨论】:

    • 这是一个很好的答案。无需维护补丁。根本没有为 target-os=android 生成版本号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多