[C++-sig] boost.python errors on Linux
Max Stricker
max.stricker at student.tugraz.at
Sat Dec 11 17:10:47 CET 2010
Am 11.12.2010 um 15:03 schrieb Stefan Seefeld:
> On 12/11/2010 07:29 AM, Max Stricker wrote:
>> Hi,
>>
>> i need to expose some C++ methods to python and came accross boost.python.
>> I installed libboost-python1.42-dev on an Ubuntu machine and tried to work with a
>> simple program found in the docs:
>>
>> #include<iostream>
>>
>> class Foo {
>> public:
>> void bar() {
>> std::cout<< "Hello"<< std::endl;
>> }
>> };
>>
>> #include<boost/python.hpp>
>> #include<Python.h>
>> using namespace boost::python;
>>
>> BOOST_PYTHON_MODULE(libboopyclass) {
>> boost::python::class_<Foo>("Foo")
>> .def("bar",&Foo::bar);
>> }
>>
>>
>> I build it using: gcc foo.cpp -I /usr/include/python2.6 -l python2.6 -l boost_python
>>
>> I get a huge error list indicating that objects like PyObject or PyTypeObject could not be found,
>> the detailed output is available here: http://pastebin.com/TyN9dZ09
>
> Add the '-shared' option (to indicate that you want to build a shared library), remove the space in '-l boost_python', and specify the output filename (such as '-o foo.so'). Finally, you should compile with g++, not gcc.
> For example:
>
> g++ -shared -o foo.so foo.cpp -I/usr/include/python2.6 -lpython2.6 -lboost_python
>
> Stefan
I tried your suggestions but it leads to the same error message (using g++ -shared foo.cpp -o foo.so -I /usr/include/python2.6 -lpython2.6 -lboost_python).
Could there be something wrong with the installation?
In the meantime I tried it on an OSX machine, installed boost 1.45 by hand (using bjam --with-python). The error is exactly the same.
I suppose the code should be fine as its from the docs. Am I missing an important step?
Max
More information about the Cplusplus-sig
mailing list