如何在.lib文件中插入/ FAILIFMISMATCH:“_ ITERATOR_DEBUG_LEVEL = 0”?

时间:2014-08-15 18:56:25

标签: c++ visual-studio-2010 dll

我试图了解Microsoft Visual Studio C ++ 2010中_ITERATOR_DEBUG_LEVEL的各个方面。

为此,我从一个非常简单的.cc文件创建了一个DLL:

#include <vector>

__declspec(dllexport) void foo(std::vector<int>& a);

#ifndef _ITERATOR_DEBUG_LEVEL
#error _ITERATOR_DEBUG_LEVEL is not defined
#endif

void foo(std::vector<int>& a)
{
   a.push_back(10);
}

我使用标志/MD(运行时库=多线程DLL)创建了目标文件。目标文件中包含令牌/FAILIFMISMATCH:"_ITERATOR_DEBUG_LEVEL=0"。但是,相应的.lib文件没有任何此类内容。当DLL由。{1}}编译的.cc文件的可执行文件使用时,会产生问题(运行时库=多线程调试DLL)。链接时没有错误,但程序在运行时崩溃。

根据我的理解,在网上阅读各种文章后,如果上面的VS Project创建的.lib包含上述标记,则EXE的创建将在链接时失败,从而防止出现运行时问题。

我需要在DLL的VS项目中更改什么才能确保将上述标记插入.lib文件中?

0 个答案:

没有答案