gpt4 book ai didi

C++ 将发布构建的库与我的调试构建链接起来

转载 作者:可可西里 更新时间:2023-11-01 15:11:00 24 4
gpt4 key购买 nike

我已经下载了第 3 方库,并在“发布”模式下构建了 .lib 文件。将 lib 添加到我的项目后,如果我以 Release模式运行我的项目,就可以了。但是如果我在 Debug模式下运行我的项目,我会得到一个错误:

_iterator_debug_level value '0' doesn't match value '2;

我可以在 Debug模式下重建库,但我认为我不需要调试库本身?我已经下载了预构建的第 3 方库,之前只附带了一个发布版本(我假设?),无论我的项目处于调试还是发布状态,链接都很好。我想知道这是怎么做到的。

最佳答案

如果你想分发一个发布库,其他人可以在发布或 Debug模式下使用,你需要做两件事:

  • 构建一个 DLL,以便您获得自己的 C 运行时库拷贝
  • 不跨库边界共享 CRT 资源,例如堆。 C 代码最大的问题是动态分配的内存必须在边界的同一侧释放。对于 C++ 代码,您可以在 DLL 中使用 std 命名空间,但不能跨边界传递这些对象。

这就是预建的第三方库最有可能做的事情。只有当外部接口(interface)不共享 CRT 对象时,您才可以对您的库执行相同的操作。或者您可以构建单独的发布和调试版本作为静态库。

关于C++ 将发布构建的库与我的调试构建链接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5771935/

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