我已设置gcc
内dev-c
的路径。它编译正常并创建可执行文件,但它无法运行程序并首先显示一个消息框(如第一张图片所示),然后在控制台上打印错误消息
Dev-Cpp
运行程序,程序完全正常生成输出,但是当我使用命令提示符调用编译器时,我得到了这些提到的问题。
我知道dependancy walker
说我有依赖问题,但如果是这样的话,那么Dev-CPP如何在我的计算机上编译程序?如前所述,Dev-Cpp
能够编译并运行写入其编辑器的代码。我最好的猜测是gcc检测到我的32位操作系统并添加一些切换到Dev-Cpp
编译过程,如
gcc -something -something my_program.c
有人可以找到something
的内容吗?
答案 0 :(得分:2)
如果仔细查看依赖显示中的CPU列,您将看到您的程序已编译为x64二进制文件。看起来您的系统没有安装64位版本的Windows。
显然,你的gcc配置为默认生成x64二进制文件。使用-m32
选项使其生成32位x86二进制文件。
答案 1 :(得分:2)
我遇到类似问题时,在四处寻找时遇到了这个问题。
我的程序看起来完全像这样,但是我在cmd中的命令是gcc Hello.c
,在这种情况下,它将创建一个临时的a.exe文件,或者gcc Hello.c -o Hello
在这种情况下,它将创建一个Hello.exe文件。如果我继续尝试运行它,它说访问被拒绝。我发现它具有实时扫描功能,是我的防病毒软件。关闭此功能后,它可以完美运行。
答案 2 :(得分: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。查看设置/首选项/选项菜单,看看是否可以找到它为其创建的版本。我希望如果你把它改成XP,它会正常工作。
祝你好运!答案 3 :(得分:0)
我遇到了这个错误。我追溯到导致问题的bitdefender(antivirus)。我删除了bitdefender及其工作正常。 没有其他更改。
答案 4 :(得分:0)
从 electromorphous' 的答案继续, 如果您在 Windows 中,请在搜索栏中键入“病毒和威胁防护”,单击具有完全相同名称的选项。你会看到这样的界面,
点击 Open app
,您的防病毒应用程序会弹出(在我的例子中是 McAfee),
通过点击左侧的三个点来点击 real-time scanning
点击蓝色的 turn off
按钮(并选择您想再次恢复的时间)关闭实时扫描,上面的答案已经提到了。
答案 5 :(得分:-1)
您必须关闭系统中安装的防病毒的实时扫描功能 因为实时扫描持续性可以在您或PC使用文件时立即检查文件,从而保护您的PC免受病毒,间谍软件和其他威胁的侵害。 该文件以其对系统的威胁为前提执行,但事实并非如此,因此请关闭实时扫描功能,以便轻松执行它。