C++ Gcc编译的可执行文件生成;“拒绝访问”;消息

C++ Gcc编译的可执行文件生成;“拒绝访问”;消息,c++,c,gcc,C++,C,Gcc,我已经在dev-c中设置了gcc的路径。它可以很好地编译并创建可执行文件,但无法运行程序,并首先显示一个消息框(如第一张图片所示),然后在控制台上打印错误消息 注: 如果我在我的系统上使用Dev Cpp运行程序,程序完全可以很好地生成输出,但是当我使用命令提示符调用编译器时,我会遇到这些问题 我正在使用Windows XP 我还安装了 更新(来自评论) 我知道,dependency walker说我有依赖性问题,但如果是这样,那么Dev CPP如何在我的计算机上编译程序?如前所述,De

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


注:
  • 如果我在我的系统上使用
    Dev Cpp
    运行程序,程序完全可以很好地生成输出,但是当我使用命令提示符调用编译器时,我会遇到这些问题
  • 我正在使用Windows XP
  • 我还安装了

  • 更新(来自评论)

    我知道,
    dependency walker
    说我有依赖性问题,但如果是这样,那么Dev CPP如何在我的计算机上编译程序?如前所述,Dev Cpp能够编译并运行写入编辑器的代码。我最好的猜测是gcc检测到我的32位操作系统,并向
    Dev Cpp
    编译过程添加一些开关,如

    gcc -something -something my_program.c
    

    有人能找到什么东西吗?

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

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

    我想我们可以排除最后两个,剩下1和2

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

    2) 文件不是为您的windows版本设计的:这实际上似乎是最可能的问题。例如,如果您编写的程序运行在64位版本的windows上,那么如果您有32位机器,它将不会运行。此外,如果您使用的是最新(或更新)版本的dev-c,它可能会默认为创建针对windows vista、7或8设计的exe。我相信你可以在某些地方更改设置,但我不是100%确定。我没有用过dev-c。查看设置/首选项/选项菜单,看看是否可以找到创建exe的版本。我希望如果你把它改成XP,它会工作得很好

    祝你好运


    来源:

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

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

    我想我们可以排除最后两个,剩下1和2

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

    2) 文件不是为您的windows版本设计的:这实际上似乎是最可能的问题。例如,如果您编写的程序运行在64位版本的windows上,那么如果您有32位机器,它将不会运行。此外,如果您使用的是最新(或更新)版本的dev-c,它可能会默认为创建针对windows vista、7或8设计的exe。我相信你可以在某些地方更改设置,但我不是100%确定。我没有用过dev-c。查看设置/首选项/选项菜单,看看是否可以找到创建exe的版本。我希望如果你把它改成XP,它会工作得很好

    祝你好运


    来源:

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


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

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


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

    我在环顾四周时遇到了这个问题,因为我遇到了类似的问题。
    我的程序看起来与此一模一样,但是我在cmd中的命令是
    gcc Hello.c
    ,在这种情况下,它会创建一个临时的a.exe文件,或者
    gcc Hello.c-o Hello
    ,在这种情况下,它会创建一个Hello.exe文件。如果我继续尝试运行它,它会说访问被拒绝。我通过实时扫描发现这是我的反病毒软件。关闭此功能后,它运行良好。

    我在环顾四周时遇到了这个问题,因为我遇到了类似的问题。
    我的程序看起来与此一模一样,但是我在cmd中的命令是
    gcc Hello.c
    ,在这种情况下,它会创建一个临时的a.exe文件,或者
    gcc Hello.c-o Hello
    ,在这种情况下,它会创建一个Hello.exe文件。如果我继续尝试运行它,它会说访问被拒绝。我通过实时扫描发现这是我的反病毒软件。关闭此功能后,它将正常运行。

    您必须关闭系统中安装的防病毒软件的实时扫描功能 因为实时扫描持续保护您的电脑免受病毒、间谍软件和其他即时威胁