[MultiArray, Thread] Setting the _ITERATOR_DEBUG_LEVEL
It's probably well-known by now that multi_array has a problem with Visual Studio 2010: due to the way it identifies its iterators, you get errors unless you set the _ITERATOR_DEBUG_LEVEL preprocessor symbol to 0. First of all, when can we expect a fix for this (or is there one already)? Secondly, even if I manually set the _ITERATOR_DEBUG_LEVEL to 0 in Debug configuration (that's the default in Release), I am unable to build because when I try to link in the Boost Thread library, I get 2>libboost_thread-vc100-mt-gd-1_43.lib(thread.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in test.obj This indicates that I need to build Boost Thread with that variable set to 0 as well, even in the debug mode; or else I need to somehow get the Release version of the library linked in instead. I'm not sure how to do either one of these options. Can anyone help me configure bjam to override the variable, or else override which lib is linked?
Hi, On Monday, 23. August 2010 18:20:39 you wrote:
It's probably well-known by now that multi_array has a problem with Visual Studio 2010: due to the way it identifies its iterators, you get errors unless you set the _ITERATOR_DEBUG_LEVEL preprocessor symbol to 0. First of all, when can we expect a fix for this (or is there one already)?
Issue number ? Patch ? Did you try 1.44 ?
Secondly, even if I manually set the _ITERATOR_DEBUG_LEVEL to 0 in Debug configuration (that's the default in Release), I am unable to build because when I try to link in the Boost Thread library, I get 2>libboost_thread-vc100-mt-gd-1_43.lib(thread.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in test.obj
This indicates that I need to build Boost Thread with that variable set to 0 as well, even in the debug mode;
use `bjam debug define="_ITERATOR_DEBUG_LEVEL=2"` to get this. A better solution is to add this to your site-config.jam or user-config.jam. See the docs for how to do it.
or else I need to somehow get the Release version of the library linked in instead.
Disable auto-linking and link manually. Adding the define BOOST_THREAD_NO_LIB to your command line should do the trick. Hope this helps. Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! Ingenieurgesellschaft für * voice: ++49 511 262926 57 ! Verkehrs- und Eisenbahnwesen mbH * fax : ++49 511 262926 99 ! Lister Straße 15 * juergen.hunold@ivembh.de ! www.ivembh.de * * Geschäftsführer: ! Sitz des Unternehmens: Hannover * Prof. Dr.-Ing. Thomas Siefer ! Amtsgericht Hannover, HRB 56965 * PD Dr.-Ing. Alfons Radtke !
Hi,
On Monday, 23. August 2010 18:20:39 you wrote:
It's probably well-known by now that multi_array has a problem with Visual Studio 2010: due to the way it identifies its iterators, you get errors unless you set the _ITERATOR_DEBUG_LEVEL preprocessor symbol to 0. First of all, when can we expect a fix for this (or is there one already)?
Issue number ? Patch ? Did you try 1.44 ?
I have no idea if it's been addressed here actually. I've only seen this reported on the Visual Studio bug list: http://connect.microsoft.com/VisualStudio/feedback/details/488103/error-with... where they pass the buck back to Boost after some detailed analysis. I assumed someone here had since looked at it, maybe I was wrong? I didn't see MultiArray as one of the updated libraries in 1.44 so I assumed it had not been fixed there. Thanks for the bjam instructions, I'll give them a try.
participants (2)
-
Jürgen Hunold
-
lfrfly@icqmail.com