gpt4 book ai didi

c++ - '_ITERATOR_DEBUG_LEVEL' : value '0' doesn't match value '2' 检测到不匹配

转载 作者:可可西里 更新时间:2023-11-01 16:07:20 25 4
gpt4 key购买 nike

使用 VS2010 构建时,我正在构建一个导致许多此类链接错误的库:

error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2'

导致我必须同时发布我的库的发行版和调试版。我没有理由发布 lib 的调试版本,它只会使二进制分发版膨胀。但是在调试中构建的客户端代码拒绝链接到我的发布库。

我以前见过这个问题,但他们似乎没有问正确的问题。我明白这个错误是什么,以及为什么我会得到它(好吧,有点;我不确定到底是什么发出了依赖性。你呢?),但我想知道的是如何消除这种依赖性的发生在我的库中?

类似于在使用冲突的 CRT 时提示的库,这可以通过/Zl 来阻止(从目标文件中省略默认库名称),当然有一种方法可以防止这种依赖性也被发送到我的库中吗?

我只是想生成一个优化的库,它能够链接到调试或发布代码。客户端代码调试 lib 并不重要。几乎没有第 3 方库附带不同的调试和发布版本。供应商如何避免这个问题?

有谁确切知道是什么导致了这种链接依赖性,以及如何完全禁用它或将其从我的代码中排除?

最佳答案

您正在将一些使用调试build设置编译并启用迭代器调试的代码与一些其他使用发布build设置编译的代码链接起来。

这个链接错误阻止你像那样吹你的腿。那么,双腿,左臂和右手的食指,你必须用下巴来操作鼠标。您从具有不同布局的 std::string 对象中获得的运行时错误很难诊断。堆损坏是一个令人讨厌的问题,几乎是最难调试的。您必须使用相同的设置重新编译代码,别无他法。

关于c++ - '_ITERATOR_DEBUG_LEVEL' : value '0' doesn't match value '2' 检测到不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21971104/

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