如何忽略 LNK2038(定义不匹配)?

Col*_*nee 2 c++ linker-errors visual-studio

可能的重复:
LNK2038,迭代器不匹配错误,需要忽略

我有一个第三方静态库,它也与 C/C++ 运行时静态链接。我只有这个库的发布版本。

当我尝试将此库链接到我的应用程序的调试版本时,链接器抱怨静态库的迭代器调试级别 (0) 与我的应用程序的级别 (2) 不匹配。

有没有办法强制链接器忽略这个错误?我希望能够在调试模式下使用此库添加的功能,并且无法获得此库的调试版本。

顺便说一句,我无法立即想到这种定义不匹配会引起的任何问题。

bri*_*ing 5

该标准说“迭代器在容器更改后未定义”。某些调试模式 STL 会检查此错误,而大多数发布模式 STL 不会检查。调试模式下的容器或迭代器类中有额外的成员变量来实现这些检查。

因此,混合调试和发布 STL 版本将不起作用,因为容器或迭代器类中的字节数可能不同。对于在调试模式和发布模式之间具有不同成员变量的任何类,都会发生同样的情况。