Boost python verknüpfen

Ich bin das hinzufügen von boost.python für mein Spiel. Ich Schreibe Wrapper für meinen Unterricht verwenden Sie in Skripten. Das problem ist die Verknüpfung, die Bibliothek zu meiner app. Ich bin mit cmake build-system.

Nun habe ich eine einfache app, mit 1-Datei und das makefile für Sie:

PYTHON = /usr/include/python2.7

BOOST_INC = /usr/include
BOOST_LIB = /usr/lib

TARGET = main

$(TARGET).so: $(TARGET).o
    g++ -shared -Wl,--export-dynamic \
    $(TARGET).o -L$(BOOST_LIB) -lboost_python \
    -L/usr/lib/python2.7/config -lpython2.7 \
    -o $(TARGET).so

$(TARGET).o: $(TARGET).cpp
    g++ -I$(PYTHON) -I$(BOOST_INC) -c -fPIC $(TARGET).cpp

Funktioniert. Es baut ein 'so' - Datei für mich, die ich importieren können, aus python.

Nun die Frage: wie bekommen diese für cmake?

Schrieb ich in main CMakeList.txt:

...
find_package(Boost COMPONENTS filesystem system date_time python REQUIRED)
message("Include dirs of boost: " ${Boost_INCLUDE_DIRS} )
message("Libs of boost: " ${Boost_LIBRARIES} )

include_directories(
    ${Boost_INCLUDE_DIRS}
        ...
)

target_link_libraries(Themisto
    ${Boost_LIBRARIES}
    ...
)
...

message Anrufe zeigen:

Include dirs of boost: /usr/include
Libs of boost: /usr/lib/libboost_filesystem-mt.a/usr/lib/libboost_system-mt.a/usr/lib/libboost_date_time-mt.a/usr/lib/libboost_python-mt.a

Ok, also habe ich einfach Hinzugefügt .cpp-Datei für mein Projekt mit einbinden von <boost/python.hpp>. Ich bekomme einen Fehler beim kompilieren:

/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory

Also nicht alle müssen die include-Verzeichnisse.

Und zweiten Frage:

Wie organisieren 2-Schritt-Aufbau der Skript-cpp-Dateien? Im makefile habe ich gezeigt, gibt es ZIEL.o und ZIEL.so, wie die Verarbeitung, die 2 Befehle in cmake?

So wie ich das verstehe, ist der beste Weg zum erstellen von Teilprojekt-und tun etwas.

Dank.

InformationsquelleAutor Max Frai | 2011-03-08
Schreibe einen Kommentar