2016-07-11 11 views
0

Ich bin neu bei MAC und Xcode, da ich ein Windows-Benutzer bin und ich wirklich verloren bin. Ich habe es schließlich geschafft, mein Spiel von Windows auf MAC zu portieren und es funktioniert im Simulator und alles andere, aber wenn ich die ausführbare Datei starte, bekomme ich den nächsten Fehler.Xcode - dyld: Bibliothek nicht geladen Fehler

dyld: Library not loaded: /opt/local/lib/libSOIL.dylib 
    Referenced from: /Users/myUser/Documents/Cotc/CourierOfTheCrypts/DerivedData/CourierOfTheCrypts/Build/Products/Release/CourierOfTheCrypts 
    Reason: image not found 
Trace/BPT trap: 5 
logout 

Ich habe eine Menge von Themen rund um den Fehler zu lesen, aber ich habe immer noch keine Ahnung davon und wie es zu lösen. Alle Bibliotheken werden in den ausführbaren Ordner kopiert.

Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen, jedes bisschen Hilfe ist mehr als willkommen!

EDIT: Es stellt sich heraus/opt/... does't Ordner existieren überhaupt ...

+1

Yeah OSX ausführbare Dateien (und dynamische Bibliotheken) haben die Position der abhängigen dynamischen Bibliothek fest in während der Verknüpfung codiert. Ich nehme an, du hast * die * Bibliothek * von */opt/local/lib/* verschoben * und nicht * kopiert, und wenn du es zurücklegst, erwarte ich, dass es funktioniert ('Bild nicht gefunden' bedeutet" Datei nicht gefunden "). Die Lösung ist 'install_name_tool' nach dem Verknüpfen, um der exe/lib mitzuteilen, wo die abhängige Bibliothek relativ zur exe/lib zu finden ist (mit' @ executable_path' oder '@ loader_path'). Ich glaube auch, Xcode wird das für Sie tun, wenn es richtig eingerichtet ist. – Droppy

+0

Ich versuchte mit dem folgenden Befehl: install_name_tool -change @ execitable_path/libSOIL.dylib /opt/local/lib/libSOIL.dylib aber es ist das gleiche. Es ändert den Suchordner nicht. – Blodyavenger

+1

Es sollte 'install_name_tool -change /opt/local/lib/libSOIL.dylib @ executable_path/libSOIL.dylib/path/to/exe' lauten. Wenn Sie als App-Bundle bündeln, sollten diese '.dylib's in' @executable_path /../ Frameworks/... 'stehen. – Droppy

Antwort

0

Die Lösung für mein Problem ist, das folgende Skript für jede Bibliothek auszuführen:

install_name_tool -id @executable_path/libSOIL.dylib "$CONFIGURATION_BUILD_DIR/libSOIL.dylib" 

Sie geben das Skript unter TARGET-Einstellungen -> RunScript ein

Verwandte Themen