【问题标题】:cl.exe release or debugcl.exe 发布或调试
【发布时间】:2018-12-03 22:28:25
【问题描述】:

我们正在使用 VC++ 2015 和 gmake。该编译器如何确定它是发布版本还是调试版本?

cl.exe /nologo /Zc:wchar_t /wd4675 /wd4407 /wd4595 /W3 /FS /GR /GS- /EHac /Zc:threadSafeInit- /X /WX /Zi /Ob1 /Oi /Ot /D "WIN32 " /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D _WIN32_WINNT=0x0601 /D "_CRT_SECURE_NO_WARNINGS" /D _SCL_SECURE_NO_WARNINGS

这样做的主要原因是找出cl.exe为_ITERATOR_DEBUG_LEVEL使用了哪个值并进行相应的调整。

谢谢, 迈克

【问题讨论】:

  • 调试配置更改了几个编译选项。 /Od 禁用所有优化是最明显的一种,/RTC 特别有助于诊断 UB。 /ZI 支持编辑+继续。 _ITERATOR_DEBUG_LEVEL 是需要用/D 指定的宏。您展示的内容很不稳定,它具有类似发布的选项,但没有定义 NDEBUG。生成文件往往会发生这种情况。
  • 感谢@HansPassant

标签: c++ visual-c++


【解决方案1】:

我能够通过在 *.pdb 文件上运行字符串实用程序来找到设置。

【讨论】:

  • 那么设置是什么?请编辑此评论并为未来的读者提供答案。
  • _ITERATOR_DEBUG_LEVEL=0。看来我们的构建处于发布模式
猜你喜欢
  • 2017-03-27
  • 2010-09-15
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 2016-11-07
  • 2020-06-04
  • 2014-11-07
  • 2013-06-22
相关资源
最近更新 更多