【问题标题】:How to increase error limit in Visual Studio?如何增加 Visual Studio 中的错误限制?
【发布时间】:2011-02-22 06:46:21
【问题描述】:

在 Visual Studio 中构建应用程序时。超过错误计数时显示如下错误

    fatal error C1003: error count exceeds 100; stopping compilation

有没有办法提高错误限制?

【问题讨论】:

  • 只是好奇,你为什么要这么做?
  • 我不知道这是否可能,但我可以问一下你的动机吗?您是否收到超过 100 条有意义的错误消息?
  • @Oleksii Skidan,那么也许您应该问的问题是“如何列出在标题中声明并由我的程序使用的函数”。
  • @Okeksii:编译器不支持这种“正常且快速”的方法? GCC 做同样的事情。问题是每次遇到错误时,编译器都必须猜测可能的意思,以便继续编译。如果它必须继续猜测,它最终会编译完全虚构的代码,然后你会得到与你的实际代码无关的错误。这就是为什么它会在一定数量的错误后停止。正如@avakar 所说,你这样做是错误的。
  • 这是一个原因:我想将一个大型项目升级到 UNICODE。在这一点上,我已经修复了 50 个小时的错误,我想知道是否有完成的希望。所有的错误都是有意义的,我只需要衡量范围。

标签: c++ visual-studio visual-studio-2008 visual-c++


【解决方案1】:

此限制是硬编码的。这是 MSFT 员工在 2006 年 microsoft.public.vsnet.general 组中的帖子(查找“致命错误 C1003”):

你好,

不幸的是,这 100 个限制是 硬编码,无法更改。它是 保留所有错误是不切实际的 周围的信息,因为一个错误可能 导致其他几个错误。

希望你明白理性 我们的产品在这个设计背后 团队。但是,如果你还有 对此有疑虑,请随意 提交您的反馈到
http://connect.microsoft.com/Main/content/content.aspx?ContentID=2220 由我们的产品监控 团队。谢谢你的 理解。

此致,Walter Wang (哇...@online.microsoft.com,删除 '在线')微软在线社区 支持”

【讨论】:

    【解决方案2】:

    我不这么认为。 VS 基本上会报告它在编译过程中遇到的所有错误。代码中可能存在一些错误部分,使编译器陷入无限“错误”循环。

    实施限制是为了避免这种情况。在大多数情况下,您得到的 100 个错误只是一遍又一遍地报告的相同错误。增加重复次数有什么意义?

    也许你可以把代码sn-p贴在最先出现错误的地方,这样我们可以帮你修复它。

    【讨论】:

      【解决方案3】:

      我相信这是一个硬编码的限制,所以不是。

      正如其他人所评论的那样,很难理解您想通过此实现什么。

      在一天结束时,您必须将它们全部修复,因此请坚持并开始修复它们。最终,你会低于 100,然后你就可以开始数它们了。

      发生这种情况时报告实际错误数量通常没有价值。大多数情况下,当您获得 C1003 时,实际上只是几个真正的错误,从而导致大量其他错误。

      (例如)

      • 如果 .h 文件中存在错误,该错误将在 #includes 它的每个 .cpp 文件中报告。
      • 如果出现错误导致无法定义任何类型的标识符(例如类、变量、方法名称),那么以后每次尝试使用它时,都会报告错误。

      【讨论】:

      • @ Paul Butcher 例如,如果您有 3 个项目,其中两个依赖于类库,那么这两个项目可能会由于库而引发无数错误,但由于限制。这就是我现在所处的位置,这很痛苦。即使您只编译库,其他两个项目的错误也会妨碍您。
      【解决方案4】:

      减少报告错误数量的解决方法:

      • 将 cl.exe 重命名为 cl-orig.exe
      • 滚动您自己的 cl.exe 以启动 cl-orig.exe,捕获其标准输出/标准错误
      • 解析标准错误,查找错误消息并计数
      • 前 n 个错误后中断

      有关一些提示,请参阅http://msdn.microsoft.com/en-us/library/ms682499(v=vs.85).aspx

      【讨论】:

        【解决方案5】:

        我也有一个这样的项目:有时 Visual Studio 决定有很多事情要做,发出 100 条与解决方案的其他部分完全无关的消息并中止构建,因为它在没有处理项目的情况下达到了消息限制我感兴趣。

        我们发现的解决方法是使用 msbuild 从命令提示符构建解决方案:Use MSBuild 演练概述了这些步骤。 msbuild 将所有消息输出到控制台,一旦构建完成,我们就可以在 Visual Studio 中再次工作和调试。不理想,但它可以让我们完成手头的任务。

        【讨论】:

          猜你喜欢
          • 2023-04-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-15
          • 2021-05-06
          • 2019-02-09
          • 2020-08-28
          相关资源
          最近更新 更多