调试visual c +程序时,无法执行指定的文件

时间:2016-06-14 11:21:20

标签: c++ debugging

我制作了一个简单的hello world程序。我点击了"开始调试"窗口显示"项目已过期。你想建立吗?"当我点击"是"时,下一个窗口显示"存在构建错误。你想继续并运行最后一次成功的构建吗?"。我再次选择是,它显示此窗口:(附带屏幕截图)enter image description here

3 个答案:

答案 0 :(得分:1)

  

存在构建错误。你想继续并运行最后一次成功的构建吗?

该问题的唯一正确答案是"否"。如果你单击了#34; Debug",你显然想要调试源的当前版本,而不是那些与你所看到的不匹配的陈旧旧版本在编辑器中。

在工具→选项→项目和解决方案→构建和运行中禁用此无意义消息。对于"在运行中,当项目过期"时,将其设置为"始终构建"。对于" On Run,当发生构建或部署错误时,将其设置为"不要启动"。

我无法想到您希望将其他选项作为默认设置的原因。如果您想要启动旧的陈旧构建,您可以随时手动执行此操作。

  

我再次选择是,它显示此窗口:"系统找不到指定的文件。"

另一个原因是为什么这是一个愚蠢的设置。特别是第二个,即在发生构建错误时控制Run行为的那个。

当您尝试构建项目时,第一步是执行 clean ,这实际上意味着删除旧文件。随着旧文件的消失,它开始构建。构建失败,您收到错误。你要求它忽略错误并运行旧版本。可是等等!旧版本在构建开始时被删除,因此它不再存在!

如果构建失败,请返回IDE,修复错误,然后重新启动以重建。

加分:您获得的构建错误是" fatal error C1010",这是一个相当愚蠢的错误,对于那些可能非常混乱不习惯Visual Studio。基本上,它告诉你的是因为你使用预编译头(新项目的默认值),每个源文件中的第一行需要包含预编译头。默认情况下,它名为stdafx.h,因此代码文件中的第一行应为:

#include "stdafx.h"

这应该在之前包含系统标题<iostream>。预编译的标头必须包含在文件的最顶层中,否则您将收到构建错误。

如果您不喜欢,那么您可以关闭预编译的标题:

  1. 在Solution Explorer中右键单击您的项目,然后选择Properties。
  2. 在顶部,点击&#34;配置&#34;组合框并选择&#34;所有配置&#34;。
  3. 展开&#34; C / C ++&#34;在树状视图中,选择&#34;预编译标题&#34;。
  4. 将顶部选项&#34;预编译标题&#34;设置为&#34;不使用预编译标题&#34;。

答案 1 :(得分:0)

抱歉:您之前删除的上一次成功构建 - 可能是因为尝试编译/链接。在你有任何调试之前,你需要修复你现在拥有的源代码...

答案 2 :(得分:0)

似乎许多用户的调试模式都缺少某些.dll文件。

如果您的程序正常运行,则不需要为此运行调试模式,然后让它运行。

我也可以看到你写了void main(),但在C ++中,良好的语法是int main(),并由return 0;指令终止。顺便说一下,考虑在#include<iostream>这样的库之间至少留出一个空格。