I've just started this morning with boost::python and have been struggling
all day to get the basic
http://www.boost.org/doc/libs/1_35_0/libs/python/doc/tutorial/doc/html/pytho...
'exposing classes' doc/tutorial: to link correctly under gcc 4.1.2. I
would greatly appreciate any help as I'm sure it's probably something simple
and I'm pretty much at a loss at the moment.
So the source file compiles and the shared object appears to link ok
however when I try and import the module, python reports the following
missing symbol:
ImportError: /test/BoostPython/hello.so: undefined symbol:
_ZN5boost6python9converter8registry6insertEPFPvP7_objectEPFvS5_PNS1_30rvalue_from_python_stage1_dataEENS0_9type_infoE
de-mangled courtesy of c++filt:
boost::python::converter::registry::insert(void* (*)(_object*), void
(*)(_object*, boost::python::converter::rvalue_from_python_stage1_data*),
boost::python::type_info)
Indeed a search through the boost.python headers yields no such function
prototype. Nor does searching the symbols defined in
libboost_python-gcc41-mt.so.
The closest match I can find in libboost_python-gcc41-mt.so is:
boost::python::converter::registry::insert(void* (*)(_object*), void
(*)(_object*, boost::python::converter::rvalue_from_python_stage1_data*),
boost::python::type_info, _typeobject const* (*)())
which appears to match the following function in
python/converter/registry.hpp:
// Insert an rvalue from_python converter
BOOST_PYTHON_DECL void insert(
convertible_function
, constructor_function
, type_info
, PyTypeObject const* (*expected_pytype)() = 0
);
Beyond that I'm pretty much stuck. Thanks in advance to anyone who can help
me out!
antony
/*------------------- hello.cpp -------------------*/
#include <string>
struct World
{
void set(std::string msg) { this->msg = msg; }
std::string greet() { return msg; }
std::string msg;
};
#include