Frage

habe ich eine einfache .so Bibliothek mit Definition einer C ++ Klasse, die von Python zugegriffen werden sollte und zu diesem Zweck Boost-Python-Bibliothek verwendet. Wenn ich diese Bibliothek Tests mit x64 Ubuntu ist es genug, um Satz LD_LIBRARY_PATH mit dem Pfad zu Boost-Libs vor Python läuft. Es funktioniert nicht, aber wenn ich mit x64 Suse. Altough ich LD_LIBRARY_PATH bin Einstellung scheint es, dass Python ignoriert.

Gibt es eine bestimmte Art und Weise Umgebungsvariablen unter Suse zu setzen?

War es hilfreich?

Lösung

Sie sollten nie Satz LD_LIBRARY_PATH finden Sie unter hier und hier . Zunächst einmal muss ich annehmen, dass Sie die Boost-Bibliotheken in einem Nicht-Standardverzeichnis installiert haben, da sonst der Lader automatisch finden würde. Wenn Sie Root-Zugriff auf das Gerät haben, installieren Sie die Bibliotheken in einem Standard-Ort (zum Beispiel mit dem Paketmanager oder in /usr/local/lib).

Wenn Sie keine Root-Rechte haben, stellen Sie den RUNPATH statt. Wenn die gcc-Linker verwenden, tun dies durch eine -rpath Option vorbei. Der gcc-Compiler Optionen an den Linker über -Wl passieren. So den Compiler aufrufen wie folgt:

g++ -Wall -Wextra -Wl,-rpath /path/to/boost -L /path/to/boost -lboost_python ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top