Interfacing C++ and Python
Jump to navigation
Jump to search
References
- interfacing C++ and Python via Boost
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:
<source lang="cpp"> // myfile.h struct World {
void set(std::string msgin) {this->msg=msgin ;} std::string greet() {return msg ;} std::string msg;
} ; </source>
<source lang="cpp"> // 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) ;
} </source>
which runs as <source lang="py"> In [1]: import hello In [2]: planet = hello.World() In [3]: planet.set('howdy') In [4]: planet.greet() Out[4]: 'howdy' </source>