Daniel Holth <dholth@fastmail.fm> writes:
I've figured it out, more or less. When I link to libpython2.3.so rather than the static Python library it works fine. Doesn't answer the question of why my other program suddenly stopped working re: importing, but it does fix it.
# The boost-jam embedding example exe embedding : # sources embedding.cpp : # requirements <threading>multi # my system's Python library is threaded <find-library>python2.3 <find-library>boost_python ;
which imports sha without incident. Except it doesn't set the include path, so the same jamfile won't both compile my code and link it. So now I just have to work out the arguments to get it to link with the shared library and set the include path properly... perplexing.
Thanks for any advice,
The embedding example in libs/python/test/Jamfile looks like: run ../test/embedding.cpp <lib>../build/boost_python : # program args : # input files : # requirements $(PYTHON_PROPERTIES) <define>BOOST_PYTHON_STATIC_LIB <define>BOOST_PYTHON_STATIC_MODULE <library-path>$(PYTHON_LIB_PATH) <$(gcc-compilers)><debug-python><library-path>$(CYGWIN_PYTHON_DEBUG_DLL_PATH) <$(gcc-compilers)><*><library-path>$(CYGWIN_PYTHON_DLL_PATH) <find-library>$(PYTHON_EMBEDDED_LIBRARY) <define>BOOST_PYTHON_STATIC_LIB is not needed if you're using the shared version of Boost.Python. You can use <dll>@boost/libs/python/build/boost_python if you are using the cross-project dependencies to ensure that the right shared library is built and linked in. HTH, -- Dave Abrahams Boost Consulting www.boost-consulting.com