[C++-sig] Boost.Python app keeps crashing in debug
Martin Walser
NurEinDummy at gmx.de
Sun Feb 22 16:23:55 CET 2009
Okay... I found the problem.
I used the opportunity to upgrade all my libs.
Built Python 2.6.1 debug and release from sources...
Downloaded Boost 1.38.0...
And as I built Python myself this time, autodetection of python failed when
building the Boost.Python libs.
So I needed a Jam File.
And there was the problem.
You REALLY seem to need a Jam file to build the real debug versions.
I put a "user-config.jam" in my home path (Windows: ECHO
%HOMEDRIVE%%HOMEPATH%) and suddenly I got a working dll:
#### user-config.jam ###########
using python
: 2.6 # Version
: C:\\libs\\Python-2.6.1\\python.exe # Python Path
: C:\\libs\\Python-2.6.1\\Include # include path(s) -
they may be not really needed here
: C:\\libs\\Python-2.6.1\\libs # lib path(s) - they may be
not really needed here
: <python-debugging>off ;
using python
: 2.6 # Version
: C:\\libs\\Python-2.6.1\\python_d.exe # Python Path
: C:\\libs\\Python-2.6.1\\Include # include path(s) -
they may be not really needed here
: C:\\libs\\Python-2.6.1\\libs # lib path(s) - they may be
not really needed here
: <python-debugging>on <define>BOOST_ALL_NO_LIB=1
;
################################
It seems to be absolutely necessary to define <python-debugging>on in the
jam file.
Simply invoking...
bjam toolset=msvc --verbose-test test python-debugging=on
define=BOOST_ALL_NO_LIB
...won't do the trick.
Files will be very well put into a \python-debugging-on subdir... but it
seems that you will always end up with a boost_python-vc80-mt-gyd-1_38.dll
(or whatever version) containing dependencies to python2x.dll AND
python2x_d.dll.
No crashes any more now.
So:
user-config.jam (see above)
+
bjam toolset=msvc --verbose-test test python-debugging=on
define=BOOST_ALL_NO_LIB
+
BOOST_DEBUG_PYTHON and BOOST_ALL_NO_LIB added to preprocessor (*)
=
Working debug version under Windows.
Yippieh!
(*) else:
ImportError: Module use of python26.dll conflicts with this version of
Python.
or
LINK : fatal error LNK1104: cannot open file
'boost_python-vc80-mt-gd-1_38.lib'
More information about the Cplusplus-sig
mailing list