Gibt es eine Möglichkeit, ich kann konfigurieren, ffmpeg shared libraries für Android ohne Versionsnummer Suffixe zu bauen? Ich kann mit verschiedenen Optionen bauen, bekomme aber immer Dateien wie "libavcodec.so.57". Ich würde die Bibliotheken ohne Suffixe wie "libavcodec.so" benötigen. Ich dachte, die Option "--disable-symver" würde den Trick machen, aber leider nicht. Das Problem ist, dass ich eine Bibliothek (.so Datei) habe, die auf ffmpeg shared Bibliotheken ohne Suffixe angewiesen ist und daher nicht laden kann. Ich habe meistens die Anweisungen here befolgt.Wie man ffmpeg Shared Libraries ohne Versionssuffix erstellt
Antwort
Fragen zu stellen führt immer dazu, Antworten zu finden. deshalb war ich erfolgreich, graben in die make-dateien geholfen. wie folgt vorgehen:
- führen Sie Ihre Konfiguration
- find "config.mak"
Änderung
SLIBNAME_WITH_VERSION = $ (SLIBNAME) $ (LIBVERSION) SLIBNAME_WITH_MAJOR = $ (SLIBNAME).. $ (LIBMAJOR)
zu:
SLIBNAME_WITH_VERSION = $ (SLIBNAME)
SLIBNAME_WITH_MAJOR = $ (SLIBNAME)Änderung
SLIB_INSTALL_NAME = $ (SLIBNAME_WITH_VERSION) SLIB_INSTALL_LINKS = $ (SLIBNAME_WITH_MAJOR) $ (SLIBNAME)
zu:
SLIB_INSTALL_NAME = $ (SLIBNAME)
SLIB_INSTALL_LINKS =ausführen "make" oder "make -j $ (nproc)“
"make install"
jetzt haben Sie gemeinsam genutzte Bibliotheken ohne Endungen.
können Sie ihre Abhängigkeiten überprüfen, indem "readelf -d somefile.so"
Keine Notwendigkeit config.mak
Gerade --target-o = android Anruf
zu konfigurieren hinzufügen zu ändern Mein Beispiel
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
Dies ist eine gute Antwort. Keine Notwendigkeit, Patches zu pflegen. Für target-os = android wurden überhaupt keine Versionsnummern generiert –