【问题标题】:C++ error detection in Visual Studio 2005Visual Studio 2005 中的 C++ 错误检测
【发布时间】:2009-08-03 08:56:00
【问题描述】:

我来自不同的开发环境(主要是 Java),我试图与我习惯的习惯进行类比。

我正在使用 Visual Studio 2005 中的 C++ 项目,该项目在更改后需要大约 10 分钟才能编译。奇怪的是,如果我犯了一个小的语法错误,我需要等待几分钟才能在运行整个项目构建时从编译器那里得到反馈。

Eclipse 给了我一个习惯,即如果我做一些小改动,我会立即得到一个编译器错误,并带有一个显示错误的下划线。看起来很合理,VS 应该能够做到这一点。

这是我可以在 VS 中启用的功能,还是我需要一个外部插件来实现这个功能?

【问题讨论】:

  • 如果编译需要 10 分钟,说明您的项目组织或 C++ 安装有问题。
  • @Neil - 我不同意。这是一个非常大的项目,有很多依赖项。
  • 这就是我的意思 - 你不应该有那么多依赖(或非常大的项目,恕我直言)
  • 我似乎是这里唯一听说过模块化分解的人。这就是图书馆的用途,伙计们!
  • 如果你有 300 多个模块,构建时间仍然很糟糕。大型 C++ 项目永远不会快速构建。使用模块仍然会比替代方案好很多。至于Yuval A的最后一句话:获得特权。之前的维护者显然是不合格的。

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


【解决方案1】:

您要求的功能将在 Visual Studio 2010 中可用。Here is a detailed link of the feature details 将可用。

目前,正如其他人所建议的那样,您可以使用 Visual Assist,它会有所帮助。

这些被称为 Squiggles BTW。

【讨论】:

    【解决方案2】:

    您可以尝试以下方法:

    • 安装 Visual Assist 之类的插件:它会通知您大部分错误;
    • 如果您想检查自己,请使用 Ctrl-F7 编译您当前正在编辑的文件 - 在这种情况下,您无需等待所有项目编译完成。如果您正在编辑头文件,请编译它所包含的 .cpp 文件之一。

    【讨论】:

    • Ctrl-F7 是一个好的开始,但我仍然需要一些视觉反馈。我会看看 Visual Assist。
    • 在 Visual Assist 中,您可以按 Alt-O 打开相关的 h 或 cpp 文件。
    【解决方案3】:

    是的,C++ 因其构建时间而臭名昭著。 Visual Studio 无法执行动态语法检查(在 C++ 的情况下),但您可以安装 Visual Assist 来帮助解决这个问题:


    (来源:wholetomato.com)

    【讨论】:

      【解决方案4】:

      10 分钟的等待时间相当长,你每次都在做完整的构建吗?您可以使用很多技术来加快速度,例如使用预编译头文件。我尝试组织我的代码,以便我在代码文件而不是标题中进行所有重大更改,然后只需构建该文件 (ctrl F7) 以检查错误。

      【讨论】:

        【解决方案5】:

        您有一个“错误列表窗口”,它将在编译后列出您的错误和警告。如果您双击错误,它将直接转到源代码中有问题的代码行。它在菜单显示,子菜单“其他窗口”中。

        请记住,编译 C++ 是一项比编译 Java 困难得多的任务,这说明了时间的增加。

        Visual Assist X 非常酷,但只检测拼写错误。

        它不能“即时”编译,这解释了您要求的功能是不可能的。如果你有一台多核机器,你可以启用并行构建。

        工具 -> 选项 -> 项目和解决方案 -> 生成和执行 -> 最大并行编译数。

        【讨论】:

          【解决方案6】:

          Resharper for C# 有它。但是对于 c++,也许视觉辅助 x ?

          【讨论】:

          • Resharper 很不错,但是内置的智能感知会立即突出显示 C# 上的编译错误。
          【解决方案7】:

          Eclipse 给了我一个习惯,即如果我做一些小改动,我会立即得到一个编译器错误,并带有一个显示错误的下划线。看起来很合理,VS 应该能够做到这一点。

          Eclipse 已经实现了他们自己的 Java 编译器,并且每次您键入一个单词时都会在后台运行它,以便能够检测错误并加下划线。我不知道我是否会称之为“合理”。 ;)

          实现该功能需要大量工作,即使是使用 Java 这样的简单语言也是如此。 正如您所发现的,在 C++ 中,编译可能需要几分钟,但更难。

          Visual Studio 2010 将实现此功能(同样,使用单独的编译器,该编译器已被大量精简,并且不会总是提供正确的结果 - 这是确保它足够快,可以即时编译)。

          【讨论】:

            猜你喜欢
            • 2011-06-21
            • 2011-08-26
            • 1970-01-01
            • 2023-03-12
            • 1970-01-01
            • 2010-11-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多