Interfacing C++ and Python: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
* [http://www.boost.org/doc/libs/release/libs/python/doc interfacing C++ and Python] via Boost | * [http://www.boost.org/doc/libs/release/libs/python/doc interfacing C++ and Python] via Boost | ||
* [http://www.boostpro.com/writing/bpl.html#introduction Introduction to Boost.Python] | |||
== Quick start == | == Quick start == | ||
Line 38: | Line 39: | ||
</source> | </source> | ||
which runs as | which runs under python as | ||
<source lang="py"> | <source lang="py"> | ||
In [1]: import hello | In [1]: import hello |
Latest revision as of 11:40, 14 October 2011
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:
<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 under python 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>