使用迭代器调试支持在调试中构建boost :: python

时间:2019-03-04 09:03:44

标签: boost boost-python bjam b2

在某些项目中,由于客户端要求,我仍然与MSVS 2010保持联系,但现在我们必须使用boost :: python将python 3.7嵌入其中。

使用boost网页分布式二进制文件时出现问题,其中提供的boost :: python库仅链接到python 2.7。此处的关键应该是编译自己与python 3.7链接的boost :: python库,因此我做到了,用b2.exe和下一个user-config.jam文件进行构建:

import toolset : using ;

using msvc : 10.0 ;

using python 
  : 3.7
  : # Interpreter
  : C:\\Python37\\include
  : C:\\Python37\\libs
  : 
  ;

option.set keep-going : false ;

并使用以下命令进行构建:

b2 -a --with-python python-debugging=off address-model=32 variant=debug link=static stage

一切编译正常,直到在项目(例如文件系统)中包含其他Boost Boost静态链接库,直到出现下一个错误为止。

error LNK2038: se detectaron diferencias para '_ITERATOR_DEBUG_LEVEL': el valor '2' no coincide con el valor '0' en Test.obj

我尝试用'define = _ITERATOR_DEBUG_LEVEL = 2'构建boost :: python,但是编译失败(但是它允许使用'define = _ITERATOR_DEBUG_LEVEL = 1'而不抱怨)。我也尝试过'define = _HAS_ITERATOR_DEBUGGING = 1',再次构建失败。

获得此编译的唯一方法是同时使用这两个:

define=BOOST_DEBUG_PYTHON define=_ITERATOR_DEBUG_LEVEL=2

但是随后它尝试与python37_d.lib链接,而这不是我所需要的。

有什么方法可以使用_ITERATOR_DEBUG_LEVEL = 2来增强boost :: python吗?

谢谢。

0 个答案:

没有答案