KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm just trying to compile the "hello world" example of boost.python WITHOUT using all the bjam magic. My boost.python installation is working, I did succesfully build the example with bjam and passed the test suite. Now for my project I need to use all this stuff in a plain Make environment. I don't want to port to another build tool. So my naive approach is of course to just point the include path to the right headers and link against the right library. I built boost python as system-layout, static, runtime-static, which means it is just a libboost_python.a that resides in /usr/local/lib. Unfortunately, I get unresolved external symbols in the resulting .so library. Here is my try to build the example from libs/python/example/tutorial/hello.cpp: $ cat hello.cpp // Copyright Joel de Guzman 2002-2004. Distributed under the Boost // Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) // Hello World Example from the tutorial // [Joel de Guzman 10/9/2002] #include <boost/python/module.hpp> #include <boost/python/def.hpp> char const* greet() { return "hello, world"; } BOOST_PYTHON_MODULE(hello_ext) { using namespace boost::python; def("greet", greet); } $ g++ -I/usr/local/include -I/usr/include/python -fpic -c -o hello.o hello.cpp $ g++ -shared -Wl,-soname,"libhello.so" -L/usr/local/lib -lboost_python -fpic -o libhello.so hello.o $ nm -u libhello.so U PyString_Type w _Jv_RegisterClasses U _Py_NoneStruct U _Unwind_Resume@@GCC_3.0 U _ZN5boost6python6detail11init_moduleEPKcPFvvE U _ZN5boost6python6detail12gcc_demangleEPKc U _ZN5boost6python6detail17scope_setattr_docEPKcRKNS0_3api6objectES3_ U _ZN5boost6python7objects15function_objectERKNS1_11py_functionE U _ZN5boost6python
Tags (comma-separated)
Save Edits
Cancel