gpt4 book ai didi

c++ - 无法添加定义以 boost 构建

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:56:41 25 4
gpt4 key购买 nike

我正在尝试使用 boost buildsystem 构建 boost 序列化/文件系统/系统的调试版本。这是我使用的:

  b2 serialization filesystem system variant=debug link=static threading=multi
runtimelink=static define=_HAS_ITERATOR_DEBUGGING=0 toolset=msvc-11.0

但是,当我在我的调试 visual studio 项目中包含该库时,我仍然会遇到如下错误:

(basic_iarchive.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in Game.obj

这让我相信我在 boost 构建中的“定义”没有任何效果。什么是正确的语法?我找不到任何示例,文档也没有说明此事。

编辑:我想强制要求在我的 boost 构建中定义 _HAS_ITERATOR_DEBUGGING=0

最佳答案

添加 define=_ITERATOR_DEBUG_LEVEL=0 对我有用,正如 Igor 评论的那样。

_HAS_ITERATOR_DEBUGGING 然后由基于上述设置的 MS-headers 定义,因此您不应尝试直接设置它。

在某些情况下(实时 3d)将其设置为 0 会显着 boost 调试性能,因此肯定有一些用例可以证明这一点,即使重新编译所有在其接口(interface)中公开 STL 容器/迭代器的 DLL 会很痛苦。

关于c++ - 无法添加定义以 boost 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17381086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com