Frage

habe ich eine Bibliothek in eine .a-Datei kompiliert, verknüpft gegen meine Anwendung. (Iphone, mit Xcode Entwicklung)

Alles scheint in Ordnung zu sein, Verknüpfung erfolgreich zu sein scheint, aber wenn ich das Programm ausführen stürzt. Der Punkt, der Absturz ist bei einer memcmp () -Aufruf in der statisch gelinkte Bibliothek. Der Debugger zeigt alle Art von Sachen mit „dyld“ in ihrem Namen genannt, so scheint es, dass aus irgendeinem Grund nicht lösen memcmp kann, beginnt für dynamische Bibliotheken suchen, dann scheitert.

AFAIK memcmp ist in libc, sollte so kein Problem sein. (Versucht, vorbei auch an den Linker -lc, und es hat nicht geholfen, wie ich erwartet hatte)

Wie wird es funktionieren soll? Warum kann eine statisch gelinkte Bibliothek Verwendung etwas von libc? Wie soll ich es kompilieren?

Danke

War es hilfreich?

Lösung 2

Vielleicht wird jemand finden es sinnvoll, wenn ich teilen, was das Problem war:

Die Bibliothek wurde nicht für die gleiche OS-Version wie das Hauptprogramm zusammengestellt, so war es eine andere libc als das, was erwartet fand es beim Laufen.

Andere Tipps

libc offenbar dynamisch auf Ihrer Plattform verknüpft. Eine passende Version kann zur Laufzeit nicht gefunden werden, um die Abhängigkeit zu Verbindungszeitpunkt erzeugte gerecht zu werden.

Ich kann nicht erklären, wie das andere passieren würde, als Dateisystem Korruption oder rufen chroot, bevor die dynamische Verknüpfung geschieht (was unwahrscheinlich scheint).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top