gpt4 book ai didi

c++ - 我可以将项目链接到与我使用的库不同的 _ITERATOR_DEBUG_LEVEL 吗?

转载 作者:行者123 更新时间:2023-11-27 23:43:09 24 4
gpt4 key购买 nike

我需要调试一个处理大量数据的程序。数据量无法减少 - 我遇到的问题只发生在特定数据集上。

由于处理的数据量,_ITERATOR_DEBUG_LEVEL 开始成为一个问题 - 在调试中,程序慢得多以至于它永远不会完成。所以我设置了 _ITERATOR_DEBUG_LEVEL=0 并重新编译了项目。

但是,重新编译项目后,它与调试库不兼容。我收到此错误。

1>libboost_program_options-vc100-mt-gd-1_55.lib(options_description.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in ADProvider.obj

我的问题是:是否可以忽略此错误并无论如何链接项目?只要它运行,我不关心可能的后果。我真的需要调试问题。

最佳答案

不同的预构建 Boost 库背后的原因恰恰是它们不是二进制兼容的。换句话说,foo 类型的对象可能在内存中具有不同的布局,具体取决于这些设置,例如不同的尺寸。因此,混合是不可能的。

现在,您可以做的是在不添加诊断的情况下编译变体(即不进行迭代器调试,这是为了捕获一些未定义行为的情况)但仍然带有调试符号,因此您可以单步执行代码。我不确定当前状态,但最后我看到那些不在默认预构建的 Boost 库中。

关于c++ - 我可以将项目链接到与我使用的库不同的 _ITERATOR_DEBUG_LEVEL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52802491/

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