Ich versuche, einen in C ++ geschriebenen Solver auf meinem Mac (OS X) zur Verwendung mit Code zu installieren, den ich in XCode geschrieben habe.
In der Solver-Dokumentation heißt es:
Stellen Sie sicher, dass Sie "." in deiner
DYLD_LIBRARY_PATH
um
- Führen Sie die fertig erstellten ausführbaren Dateien aus
- Verknüpfung mit der libamg.dylib (und den gfortran RTSlibs)
Ich verstehe nicht wirklich, was das bedeutet. Wo und was muss ich ändern, was?
Ich habe ein bisschen gegoogelt, bin aber auf nichts gestoßen, was für einen Neuling wie mich einfach genug ist! Wenn es geduldige Leute gibt, denen es nichts ausmacht, mich zu einer Online-Ressource zu leiten oder mir zu erklären, wie und wo Umgebungsvariablen gesetzt werden sollen, wäre ich sehr dankbar.
DYLD_LIBRARY_PATH
nochDYLD_FRAMEWORK_PATH
, weil sie diese geladene Libs verhindern kann vom System bereitgestellte Bibliotheken zu finden. Verwenden Sie stattdessen dieFALLBACK
Versionen , damit dies besser funktioniert . Weitere Informationen in dieser Antwort: stackoverflow.com/a/3172515/43615Man sollte niemals
export DYLD_LIBRARY_PATH
auf dein System einstellen .Freigegebene Bibliothekspfade können mit
otool -L
und festgelegt werdeninstall_name_tool
.Wenn Sie beispielsweise Perl DBD-MySQL kompilieren, können Sie es nicht verwenden, da der Linker nicht weiß, wo Sie MySQL installiert haben.
Das ist so einfach.
quelle
DYLD_FALLBACK_FRAMEWORK_PATH
, es tut Arbeit in diesem Fall. Dies ist viel einfacher als das Ändern der internen Pfade der Bibliotheken, insbesondere wenn Sie die erstellten Dylibs mit Ihrer App bereitstellen müssen und nicht vorhersagen können, auf welchem Pfad sie landen.In Xcode 4 können Sie es zum Projektschema hinzufügen, um Fehler wie diesen zu vermeiden:
Klicken Sie im Menü auf "Produkt" -> "Schema bearbeiten" -> Registerkarte "Argumente" -> "Umgebungsvariablen" hinzufügen -> Schlüssel: DYLD_LIBRARY_PATH Wert: / Users / MyUserAccount / path / to / lib
Ändern Sie den Pfad zu Ihrem Benutzerkonto und den vollständigen Pfad zum Bibliotheksordner.
Sie sollten in der Lage sein, zu erstellen und auszuführen.
quelle