Wie erstelle ich ein boost-abhängiges Projekt mit regulären Makefiles?

8

Ich arbeite an einem C ++ - Projekt und wir mussten kürzlich einen kleinen Teil des Boosts darin einbauen. Der Boost-Part ist wirklich minimal (Boost :: Python), so dass die Verwendung von bjam, um alles zu erstellen, wie ein Overkill aussieht (außerdem fühlt sich jeder, der an dem Projekt arbeitet, mit make zufrieden und kennt kein Jam-Wissen).

Ich habe schon einige Tests gemacht, aber ich finde keine Möglichkeit, die früher erwähnte Bibliothek in mein Makefile aufzunehmen und den Build erfolgreich zu machen.

All Ihre Hilfe ist zutiefst geschätzt. :)

    
Fabzter 05.01.2010, 01:12
quelle

4 Antworten

2

Ich hatte das gleiche Problem und fand in diesem Tutorial eine Lösung. Sie müssen 1) die Quelle in eine Objektdatei mit der Option -fPIC gcc kompilieren und 2) dieses Objekt in eine Bibliothek mit der Option -shared gcc kompilieren. Natürlich müssen Sie auch mit der Boost.Python-Bibliothek verlinken (generell -lboost_python , für mein Debian-System ist es jedoch zB -lboost_python-mt-py25 , ich muss auch -I/usr/include/pythyon25 hinzufügen). In meinem Makefile beende ich diese zwei Schritte in einem Befehl. Siehe auch p. 13 dieser Präsentation .

    
rafak 13.01.2010, 10:32
quelle
4

Sie können Boosts bcp-Dienstprogramm verwenden, um nur die Teilmenge von Boost zu extrahieren du brauchst. Das wird Ihre Bauzeit minimieren und Größe.

Das beantwortet Ihre Frage jedoch nicht. Sie sollten in Erwägung ziehen, die Boost.Python-Bibliotheken separat zu erstellen und direkt in Ihrem Quellcodeverwaltungssystem zu prüfen. Dann müsste niemand sie bauen.

    
Ferruccio 05.01.2010 01:43
quelle
1

Wenn Ihnen bjam unangenehm ist, sollten Sie Boost.Cmake . Alternativ solltest du zumindest mit den bjam-Dateien zumindest besser sehen können, was sie machen.

    
Georg Fritzsche 05.01.2010 01:26
quelle
1

Führe bjam aus dem Makefile aus, nur um dieses Teil zu erstellen

    
Andrew McGregor 05.01.2010 01:33
quelle