2010-01-05 4 views
8

Ich arbeite an einem C++ Projekt, und wir mussten vor kurzem einen kleinen Teil davon boosten. 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 hat kein Wissen über Jam).Wie erstellt man ein Boost-abhängiges Projekt mit regulären Makefiles?

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 sehr geschätzt. :)

Antwort

2

Ich hatte das gleiche Problem und fand eine Lösung in diesem tutorial. Sie müssen 1) die Quelle in eine Objektdatei mit der GCC-Option kompilieren und 2) dieses Objekt in eine Bibliothek mit der GCC-Option -shared kompilieren. Natürlich müssen Sie auch mit der Boost.Python-Bibliothek verlinken (normalerweise -lboost_python, für mein Debian-System ist es zum Beispiel -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 davon presentation.

+0

Vielen Dank. Das war genau die Antwort, nach der ich suchte. :) – Fabzter

1

Wenn Sie mit bjam unwohl sind, sollten Sie die Verwendung von Boost.Cmake in Betracht ziehen.
Alternativ sollte man zumindest mit den bjam-Dateien zumindest einfacher sehen können, was sie machen.

1

Run bjam von der Make-Datei, nur für den Aufbau, dass ein Teil

4

Sie Boost-den können bcp utility nur die Teilmenge der Boost-Sie müssen extrahieren. Das wird Ihre Bauzeit & Größe minimieren.

Das beantwortet jedoch Ihre Frage 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.