[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