android - 如何构建没有版本后缀的ffmpeg共享库

标签 android ffmpeg shared-libraries

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

最佳答案

提出问题总能找到答案。这就是我成功的原因,深入研究 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)”

  • “进行安装”

现在您将拥有没有后缀的共享库。
您可以通过以下方式检查它们的依赖关系 “readelf -d somefile.so”

关于android - 如何构建没有版本后缀的ffmpeg共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36911982/

相关文章:

Android gradle JAR 依赖项最终声明为 native

java - SharedPreference ClassCastException 问题 Android

audio - 如何使用 ffmpeg 更改音频帧速率?

opencv - 用于解码 H.264 RTSP 流的库

google-apps-script - 服务器错误,使用共享库时 google.script.run 失败

android - 是否有适用于 Android 的生产质量 OAuth 示例?

android - Android 设备 ID 是否区分大小写?

cmd - 使用 cmd 或 media info/ffmpeg 的文件列表和文件大小

c++ - 我怎样才能拥有在 Python C/C++ 扩展之间共享的全局 C/C++ 变量?

linux - 在哪里可以找到适用于我的 Linux 系统的 libxul.so 库?