Konvertieren Sie die gemeinsam genutzte Bibliothek in eine statische Bibliothek?

Lesezeit: 3 Minuten

Ist es möglich, eine gemeinsam genutzte Bibliothek (someLib.so) in eine statische Bibliothek zu konvertieren? (someLib.a)

  • Warum sollte man das überhaupt tun? Nur um die Vorteile der statischen Bibliothek gegenüber der gemeinsam genutzten Bibliothek zu nutzen?

    – Raulp

    11. Juni 2012 um 5:56 Uhr

  • @softly Das Problem mit gemeinsam genutzten Bibliotheken ist, dass sie anfälliger für Sicherheitsprobleme sind, entweder weil eine gemeinsam genutzte Bibliothek durch eine schädliche Version ersetzt wird, die dann zur Laufzeit in Ihre Anwendung geladen wird, oder weil zwei Anwendungen denselben Code verwenden. Wenn es einem irgendwie gelingt, den Code zu ändern, wirkt sich dies auf den anderen aus.

    – Rob Gilliam

    8. August 2012 um 8:15 Uhr


  • @RobGilliam Sie können auch genau das Gegenteil sagen – eine gemeinsam genutzte Bibliothek bedeutet, dass sie ersetzt werden kann, wenn Sie ein Sicherheitsproblem finden, und wenn sie statisch verknüpft war, bleiben Sie bei diesem Sicherheitsproblem hängen.

    – James Moore

    16. Mai 2017 um 22:08 Uhr

  • iOS erlaubt keine verschachtelten Abhängigkeiten, daher könnte das Konvertieren einer gemeinsam genutzten Bibliothek in eine statische Bibliothek (falls möglich) für Bibliotheksentwickler von Vorteil sein, um die Verwendung ihrer Bibliothek zu vereinfachen (anstatt mylib.framework UND dependency.frameworkSie schließen einfach ein mylib.framework und die Abhängigkeit ist ein Teil davon)

    – Stevendesu

    8. Oktober 2019 um 15:30 Uhr

Benutzer-Avatar
Ein Programmierer

Nein. (Zumindest für die gemeinsam genutzte ELF-Bibliothek). Eine gemeinsam genutzte Bibliothek ist ein einfaches Objekt (Also steht für geteiltes Objekt). Eine statische Bibliothek ist eine Sammlung von Objekten. Beim Erstellen der gemeinsam genutzten Bibliothek kombinieren Sie mehrere Objekte und Sie verlieren einige der Informationen, die erforderlich wären, um sie abzurufen.

  • Nur so aus Interesse – welche benötigten Informationen gehen verloren? Diese “inneren Objekte” sind immer noch “aufrufbar” – und was fehlt angesichts der entsprechenden Anrufdetails?

    – Bastian Ebeling

    29. November 2013 um 10:21 Uhr

  • Der Name der kombinierten Objekte ist der naheliegendste Kandidat. Es ist möglich, dass Sie mit den verfügbaren Debug-Informationen genügend Informationen haben, um das Rätsel zu lösen und alles zu rekonstruieren, aber das war mit Sicherheit nicht der Zweck des Formats.

    – Ein Programmierer

    29. November 2013 um 10:29 Uhr

  • Okay, das scheint interessant zu sein. Aber wissen Sie, dass es Tools gibt, die angeben, dass sie von dynamisch zu statisch konvertieren können? (Ohne Quelle)

    – Bastian Ebeling

    3. Dezember 2013 um 22:15 Uhr

  • Da ich meinen letzten Kommentar nicht bearbeiten kann – was wäre, wenn man die .dll, .lib und .exp (für den Windows-Fall) hat – ist das dann möglich?

    – Bastian Ebeling

    12. Dezember 2013 um 10:37 Uhr

  • @AProgrammer Wäre es möglich, wenn ich die Objektnamen nicht benötige? Zum Beispiel sollte es theoretisch möglich sein, zu extrahieren puts Funktion ab libc.so.6 wie puts.o da die genaue Adresse des Funktionseintrittspunkts und der Codepfad (dh die Befehlsfolge) bekannt sind. Wenn nicht, was ist die Barriere?

    – SuibianP

    9. August um 8:49 Uhr

Benutzer-Avatar
Alok Speichern

JAWOHL wenn Sie den Quellcode der gemeinsam genutzten Bibliothek haben.

NEIN wenn Sie den Quellcode der gemeinsam genutzten Bibliothek nicht haben.

  • Können Sie erklären, warum, zumindest schematisch?

    – static_rtti

    8. Januar 2016 um 14:38 Uhr

  • Ich habe den Quellcode für die gemeinsam genutzte Bibliothek. Ich möchte für die Entwicklung mobiler iOS-Anwendungen verwenden. Könnten Sie mir bitte die Schritte zum Konvertieren einer gemeinsam genutzten Bibliothek in eine statische Bibliothek (.a) mitteilen.

    – Pushpa Raja

    2. August 2019 um 9:40 Uhr

  • Warum brauchen Sie überhaupt die gemeinsam genutzte Bibliothek, wenn Sie den Quellcode haben?

    – SOFe

    18. November 2020 um 5:24 Uhr

1384380cookie-checkKonvertieren Sie die gemeinsam genutzte Bibliothek in eine statische Bibliothek?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy