3 Stimmen

Verwendung von boost-python mit C++ unter Linux

Meine Entwicklungsabteilung hat eine recht nützliche Python-basierte Testsuite zusammengestellt, mit der wir einige Linux-basierte C++-Codes testen möchten. Wir haben das Testprojekt, das mit Boost ausgeliefert wird, zum Kompilieren gebracht (geben Sie "bjam" in das Verzeichnis ein und es funktioniert), aber wir haben Probleme mit unserem eigentlichen Projekt.

Erstellen der Boost-Bibliotheken und bjam aus dem Quellcode (v1.35.0), wenn ich bjam starte, erhalte ich eine .so im Verzeichnis bin/gcc-4.1.2/debug. Ich starte Python und "import" und erhalte: ImportError: libboost_python-gcc41-d-1_35.so.1.35.0 : Gemeinsame Objektdatei kann nicht geöffnet werden: No such file or directory

Ein Blick in das Bibliotheksverzeichnis zeigt mir Folgendes: libboost_python-gcc41-mt-1_35.so libboost_python-gcc41-mt-1_35.so.1.35.0 libboost_python-gcc41-mt.so

Offensichtlich brauche ich das -d anstelle der -mt-Bibliotheken, oder ich muss auf die -mt-Bibliotheken anstelle von -d verweisen, aber ich kann nicht herausfinden, wie ich meine Jamroot-Datei dazu bringe, das zu tun.

Wenn ich die Debian-Etch-Versionen der Bibliotheken installiere, erhalte ich "No Jamfile in /usr/include" - und es gibt einen Debian-Fehler, der besagt, dass sie das Jamfile auf Systemebene weggelassen haben.

Ich bin hoffnungsvoller, was das Funktionieren aus dem Quellcode angeht. Wenn also jemand Vorschläge hat, wie man die Probleme mit der Bibliothek lösen kann, würde ich sie gerne hören.

Antwort auf Antwort 1: Danke für den Tipp. Wissen Sie, wie ich es schaffe, stattdessen die MT-Bibliotheken zu verwenden? Es scheint eher ein Problem mit bjam oder dem Jamfile zu sein, das ich benutze, weil es denkt, ich sei im Debug-Modus, obwohl ich keine Flags dafür finden kann. Ich weiß zwar, wie man bestimmte Bibliotheken in einen GCC-Aufruf einbindet, aber ich sehe keine Möglichkeit, das von Boost aus zu konfigurieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X