gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 05:37:56 32 4
gpt4 key购买 nike

我做了一个简单的 hello world 程序。我单击“开始调试”,窗口显示“项目已过期。您要构建它吗?”当我单击"is"时,下一个窗口显示“存在构建错误。您要继续并运行上次成功的构建吗?”。我再次选择是,它显示了这个窗口:(附截图)enter image description here

最佳答案

There were build errors. Would you like to continue and run the last successful build?

该问题的唯一正确答案是“否”。如果您单击“调试”,您显然想要调试源代码的当前版本,而不是与您在编辑器中看到的内容不匹配的陈旧旧版本。

在工具 → 选项 → 项目和解决方案 → 构建和运行中禁用这个无意义的消息。对于“On Run, when projects are outdate”,将其设置为“Always build”。对于“运行时,发生构建或部署错误时”,将其设置为“不启动”。

我想不出您为什么要将其他选项作为默认 设置的原因。如果您想启动旧的、陈旧的构建,您始终可以手动执行此操作。

I choose yes again, and it shows this window: "The system cannot find the file specified."

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

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

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


奖励:您遇到的构建错误是“fatal error C1010”,这是一个相当愚蠢的错误,对于那些不习惯 Visual Studio 的人来说可能会非常困惑。基本上,它告诉您的是,因为您使用的是预编译头文件(新项目的默认设置),所以每个源文件的第一行都需要包含预编译头文件。默认情况下,它被命名为 stdafx.h ,所以代码文件的第一行应该是:

#include "stdafx.h"

这应该在您包含系统 header <iostream> 之前进行.预编译 header 必须包含在文件的最顶层,否则您将遇到构建错误。

如果你不喜欢那样,那么你可以关闭预编译头文件:

  1. 在“解决方案资源管理器”中右键单击您的项目,然后选择“属性”。
  2. 在顶部,点击“配置”组合框并选择“所有配置”。
  3. 在 TreeView 中展开“C/C++”,然后选择“预编译 header ”。
  4. 将顶部选项“预编译头”设置为“不使用预编译头”。

关于c++ - 调试visual c++程序时,指定的文件无法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37810571/

32 4 0
文章推荐: c++ - Zebra KBTools MC92N0 键盘重新映射 C++ -- "error.h"没有这样的文件或目录
文章推荐: html - 如何仅使用 CSS 设置