【问题标题】:Visual C++ Build / Debugging IssueVisual C++ 构建/调试问题
【发布时间】:2011-12-17 18:21:21
【问题描述】:

我在使用 Visual Studio 时遇到了一个奇怪的问题。每当我更改代码并构建时,即使我收到构建成功的通知(如果有的话,它也会显示代码错误并且不构建),可执行文件实际上是之前的构建。这真的很烦人和令人沮丧。

如果我在新行上放一个断点,断点会被禁用并显示

当前不会命中断点。没有可执行代码 与这条线相关联。可能的原因包括:预处理器 指令或编译器/链接器优化

如果我在旧代码行上设置断点,它会停止处理,但会显示这条消息

源与构建模块时不同。你愿意吗 调试器还是要使用它?

我以前从来没有遇到过这个问题,我的笔记本电脑的硬盘上也有源代码。它立即保存。每次手动解决这个问题的唯一方法Clean 整个解决方案,而不是基本上按 F5。

【问题讨论】:

  • 究竟构建了什么?例如,它是目标文件而不是可执行文件吗?如果是这样,那么在构建之前和之后检查源、对象和可执行文件的时间戳,并让我们知道它们是什么。另外,干净构建后它们是什么?
  • 您能否验证您是否没有多次打开一个源文件?

标签: c++ visual-studio debugging build


【解决方案1】:

感谢大家的建议。我的错误是我在 .cpp 文件中定义了类,这不知何故导致链接器做奇怪的(可能缓存)东西并链接旧对象。我将文件重命名为.h,一切正常。

【讨论】:

    【解决方案2】:

    也许您的代码没有构建,或者以您不期望的方式构建。

    您可以通过在某处插入#error foobar 预处理器指令来检查。如果构建时没有显示错误,则说明您遇到了麻烦!

    但我从未使用过 Visual Studio(我只使用 Linux),所以我无法提供更多帮助。

    【讨论】:

      【解决方案3】:

      可能是您将主项目设置为其他项目并构建它。 通过在菜单栏中设置主项目,将您想要处理的项目设置为“主项目”。

      【讨论】:

        【解决方案4】:

        我认为您正在使用来自另一个项目的源文件(例如:如果您使用的是 dll,比如说 my.dll(它是使用一些源文件构建的,比如说 mycpp.cpp );在您当前的项目中)。 当您调试到文件(mycpp.cpp)时,可能您对其进行了修改。

        因此,您需要首先在创建 my.dll 的项目中重建 dll (my.dll)。 要么 也许您已经在一个窗口中打开了 mycpp.cpp 的实例并在另一个窗口中进行了调试。 你应该重建 dll。

        如果您没有使用来自另一个项目的文件,那么我无法猜测原因......但我仍然建议使用 rebuild 而不是 clean构建

        请稍微澄清一下您的问题。 @David 期待您的回复...

        【讨论】:

          【解决方案5】:

          我一直在寻找这个问题的答案,因为我也被它困住了。我的一位同事刚刚给了我一个可行的解决方案。是的,这看起来很愚蠢,但它对我有用。

          我们的解决方案有很多项目。他告诉我选择我想打入的项目并将其设置为启动项目(右键单击项目名称并选择“设置为启动项目”)。我很绝望,所以我尝试了。令我惊讶的是,它确实有效。

          由于我打开了这个窗口,我想我会分享它以防其他人遇到问题。

          【讨论】:

            【解决方案6】:

            我遇到了同样的问题。但理性不是你的。 然后我重新启动了 Visual Studio,它按预期运行。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2020-02-04
              • 1970-01-01
              • 1970-01-01
              • 2010-10-21
              • 1970-01-01
              • 1970-01-01
              • 2011-03-04
              相关资源
              最近更新 更多