0

我已经设置了gcc内部的路径dev-c。它可以正常编译并创建可执行文件,但无法运行程序并首先显示一个消息框(如第一张图片所示),然后在控制台上打印错误消息


笔记:

  1. 如果我在我的系统上使用 运行程序,该程序完全可以正常工作,产生输出Dev-Cpp,但是当我使用命令提示符调用编译器时,我得到了这些提到的问题。
  2. 我正在使用 Windows XP。
  3. 我也安装了msys

在此处输入图像描述 在此处输入图像描述


更新(来自评论)

Dependency Walker 的输出屏幕

我知道这dependancy walker表示我有依赖问题,但如果是这种情况,那么 Dev-CPP 如何在我的计算机上编译程序?如前所述,Dev-Cpp能够编译和运行写入其编辑器的代码。我最好的猜测是 gcc 会检测到我的 32 位操作系统,并在Dev-Cpp编译过程中添加了一些开关,例如

gcc -something -something my_program.c

有人能找到那something是什么吗?

4

6 回答 6

2

如果您仔细查看依赖显示中的 CPU 列,您会发现您的程序已被编译为 x64 二进制文件。您的系统似乎没有安装 64 位版本的 Windows。

显然,您的 gcc 默认配置为生成 x64 二进制文件。使用该-m32选项使其生成 32 位 x86 二进制文件。

于 2013-11-14T16:34:11.807 回答
2

当我遇到类似问题时,我在环顾四周时遇到了这个问题。我的程序看起来完全一样,但我在 cmd 中的命令是gcc Hello.c在这种情况下它会创建一个临时的 a.exe 文件,或者gcc Hello.c -o Hello在这种情况下它会创建一个 Hello.exe 文件。如果我继续尝试运行它,它会说Access is denied。我发现它是我的防病毒软件,具有实时扫描功能。关闭此功能后,它可以完美运行。

于 2020-02-21T18:29:56.753 回答
1

继续Electromorphous 的回答,如果您在 Windows 中,请在搜索栏中输入“病毒和威胁防护”,单击名称完全相同的选项。你会看到这样的界面,

在此处输入图像描述

点击Open app,会弹出你的杀毒应用(在我的例子中是 McAfee),

在此处输入图像描述

单击real-time scanning左侧的三个点

在此处输入图像描述

点击蓝色turn off按钮(并选择何时恢复)关闭实时扫描,上面的答案都提到了。

在此处输入图像描述

于 2021-03-06T19:08:45.147 回答
0

此错误可能是由几个不同的问题引起的:

1) 文件损坏、损坏或丢失 2) 文件不是为您的 Windows 版本设计的 3) 文件是病毒、蠕虫或其他恶意软件文件 4) 硬件不兼容

我认为我们可能可以排除最后两个,留下 1 和 2。

1) 文件损坏:如果您在创建 exe 时遗漏了使其正常工作所需的重要文件,则可能会发生这种情况。这些是您的开发环境中的文件(源文件、头文件等)。如果它们没有正确导出,它们可能会导致此问题。缺少文件:在文件系统中搜索 a.exe。在运行它之前确保它确实存在。从开发环境运行它并不能保证它存在于您的文件系统中。

2)文件不是为您的 Windows 版本设计的:这实际上似乎是最有可能出现的问题。例如,如果您正在编写程序以在 64 位版本的 Windows 上运行,那么如果您有 32 位计算机,它将无法运行。此外,如果您使用的是最新(或更新)版本的 dev-c,它可能会默认创建一个专为 windows vista、7 或 8 设计的 exe。我相信在某些地方可以更改此设置,但是我不是百分百确定。我没用过dev-c。查看设置/首选项/选项菜单,看看您是否可以找到它正在为其创建 exe 的版本。我希望如果您将其更改为 XP,它将正常工作。

祝你好运!

资料来源: http: //www.computerhope.com/issues/ch000726.htm

于 2013-11-14T15:41:49.910 回答
0

您必须关闭系统中安装的防病毒软件的实时扫描功能,因为实时扫描可以在您或您的 PC 使用文件时立即检查文件,从而保护您的 PC 免受病毒、间谍软件和其他威胁。因此防病毒软件停止执行此文件,因为它假定它对系统构成威胁,但事实并非如此,因此请关闭实时扫描功能,以便您可以轻松执行它。

于 2020-04-21T10:27:23.430 回答
0

我有这个错误。我将其追溯到导致问题的 bitdefender(防病毒)。我删除了 bitdefender 并且它工作正常。没有进行其他更改。

于 2020-05-01T17:51:26.423 回答