在某些项目中,由于客户端要求,我仍然与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吗?
谢谢。