如何将 _ITERATOR_DEBUG_LEVEL 添加到 CMake?

Posted

技术标签:

【中文标题】如何将 _ITERATOR_DEBUG_LEVEL 添加到 CMake?【英文标题】:How to add _ITERATOR_DEBUG_LEVEL to CMake? 【发布时间】:2019-01-18 01:02:30 【问题描述】:

我是 CMake 的新手,我想将 _ITERATOR_DEBUG_LEVEL 设置为 0 用于发布构建,将 2 用于调试构建,以解决尝试编译依赖于其他项目的项目时出现的问题。

错误:

_iterator_debug_level 值 '2' 与值 '0' 不匹配(这是用于发布 Win32 版本,其中主项目的值 disabled(0) 并且它所依赖的项目由于某种原因启用了它,某处)

我在主项目中没有 C/C++ 属性部分,因为它是一个严重依赖 CMake 的实用程序项目。因此我只需要通过 CMake 选项来解决这个问题。

谁能指出我通过 CMake 设置 Visual Studio 选项的方法?

【问题讨论】:

【参考方案1】:
add_definitions(-D_ITERATOR_DEBUG_LEVEL=0) 

在 CMakeLists.txt 中似乎可以工作

【讨论】:

以上是关于如何将 _ITERATOR_DEBUG_LEVEL 添加到 CMake?的主要内容,如果未能解决你的问题,请参考以下文章

错误 LNK2038:检测到“_ITERATOR_DEBUG_LEVEL”不匹配:值“2”与 XX.obj 中的值“0”不匹配

在 Visual Studio 2015 中使用 _ITERATOR_DEBUG_LEVEL 0 的字符串流访问冲突

Visual Studio 中的 _ITERATOR_DEBUG_LEVEL 错误,接受的解决方案不起作用

Qt5.11.2 VS2015编译activemq发送程序 _ITERATOR_DEBUG_LEVEL错误和崩溃解决

CRT 库:版本错误

VS2012+Windows下使用Boost的thread库编译报错