Interfacing C++ and Python
From LPTMS Wiki
References
Quick start
- command line under linux
:> g++ -shared myfile.cpp -I/usr/include/python2.6 -lboost_python -o myfile.so -fPIC
This compiles the basic example below:
// myfile.h struct World { void set(std::string msgin) {this->msg=msgin ;} std::string greet() {return msg ;} std::string msg; } ;
// myfile.cpp #include <boost/python.hpp> #include "myfile.h" using namespace boost::python; BOOST_PYTHON_MODULE(hello) { def("greet", greet, "return one of three parts of a greeting"); class_<World>("World") .def("greet",&World::greet) .def("set",&World::set) ; }
which runs under python as
In [1]: import hello In [2]: planet = hello.World() In [3]: planet.set('howdy') In [4]: planet.greet() Out[4]: 'howdy'