我制作了一个简单的hello world程序。我点击了"开始调试"窗口显示"项目已过期。你想建立吗?"当我点击"是"时,下一个窗口显示"存在构建错误。你想继续并运行最后一次成功的构建吗?"。我再次选择是,它显示此窗口:(附带屏幕截图)enter image description here
答案 0 :(得分:1)
存在构建错误。你想继续并运行最后一次成功的构建吗?
该问题的唯一正确答案是"否"。如果你单击了#34; Debug",你显然想要调试源的当前版本,而不是那些与你所看到的不匹配的陈旧旧版本在编辑器中。
在工具→选项→项目和解决方案→构建和运行中禁用此无意义消息。对于"在运行中,当项目过期"时,将其设置为"始终构建"。对于" On Run,当发生构建或部署错误时,将其设置为"不要启动"。
我无法想到您希望将其他选项作为默认设置的原因。如果您想要启动旧的陈旧构建,您可以随时手动执行此操作。
我再次选择是,它显示此窗口:"系统找不到指定的文件。"
另一个原因是为什么这是一个愚蠢的设置。特别是第二个,即在发生构建错误时控制Run行为的那个。
当您尝试构建项目时,第一步是执行 clean ,这实际上意味着删除旧文件。随着旧文件的消失,它开始构建。构建失败,您收到错误。你要求它忽略错误并运行旧版本。可是等等!旧版本在构建开始时被删除,因此它不再存在!
如果构建失败,请返回IDE,修复错误,然后重新启动以重建。
加分:您获得的构建错误是" fatal error C1010",这是一个相当愚蠢的错误,对于那些可能非常混乱不习惯Visual Studio。基本上,它告诉你的是因为你使用预编译头(新项目的默认值),每个源文件中的第一行需要包含预编译头。默认情况下,它名为stdafx.h
,因此代码文件中的第一行应为:
#include "stdafx.h"
这应该在之前包含系统标题<iostream>
。预编译的标头必须包含在文件的最顶层中,否则您将收到构建错误。
如果您不喜欢,那么您可以关闭预编译的标题:
答案 1 :(得分:0)
抱歉:您之前删除的上一次成功构建 - 可能是因为尝试编译/链接。在你有任何调试之前,你需要修复你现在拥有的源代码...
答案 2 :(得分:0)
似乎许多用户的调试模式都缺少某些.dll文件。
如果您的程序正常运行,则不需要为此运行调试模式,然后让它运行。
我也可以看到你写了void main()
,但在C ++中,良好的语法是int main()
,并由return 0;
指令终止。顺便说一下,考虑在#include
和<iostream>
这样的库之间至少留出一个空格。