Verwenden von boost.python mit make statt bjam

8

Ich versuche nur, das "Hallo Welt" -Beispiel von boost.python zu kompilieren, OHNE all die Magie zu benutzen. Meine boost.python Installation funktioniert, ich habe das Beispiel mit bjam erfolgreich erstellt und die Testsuite übergeben.

Jetzt für mein Projekt muss ich all diese Sachen in einer einfachen Make-Umgebung verwenden. Ich möchte nicht auf ein anderes Build-Tool portieren.

Also ist meine naive Herangehensweise natürlich, nur den Include-Pfad auf die richtigen Header zu richten und mit der rechten Bibliothek zu verknüpfen. Ich habe Boost Python als System-Layout, statisch, Laufzeit-statisch, was bedeutet, dass es nur eine libboost_python.a ist, die sich in / usr / local / lib befindet.

Leider bekomme ich ungelöste externe Symbole in der resultierenden .so Bibliothek.

Hier ist mein Versuch, das Beispiel aus libs / python / example / tutorial / hello.cpp zu erstellen:

%Vor%

Also, was ist die große Magie von bjam, wenn bjam libboost_python.a verlinkt? Ich bekomme keine undefinierten Symbole, aber wenn ich es "von Hand" mache, bekomme ich diese?

    
Philipp 06.10.2010, 10:54
quelle

2 Antworten

7

Nun, ich war wirklich dumm. Um zu verlinken, muss man das Objekt VOR der Bibliothek mit den Symbolen versehen. Also dreh

%Vor%

in

%Vor%

Gab mir das erwartete Ergebnis, nachdem ich boost.python mit cxxflags = -fPIC neu kompiliert habe.

    
Philipp 07.10.2010, 12:12
quelle
2

Sie könnten so etwas ausprobieren:

%Vor%     
jorge 19.01.2011 16:03
quelle

Tags und Links