56

我最近在 Windows 7 Ultimate 32 位上安装了带有 mingw32 的 CodeBlocks,以便清除我的 c 技能,但这个问题让我有些难过。

我决定启动一个短斐波那契发生器以确保我的设置正常工作,但我遇到了一个障碍。

该程序编译,链接等等,就像一个魅力,我得到一个按预期运行的相应可执行文件。

如果我尝试再次编译,则会出现问题,然后我得到以下信息:

c:/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot open output file bin\Debug\Fibonacci.exe: Permission denied

我什至无法编辑生成的可执行文件的权限。

我检查了通常的嫌疑人:

  • 可执行文件确实没有运行。
  • 可执行文件的路径对 mingw32 是可读/可写的(否则它一开始就无法构建)
  • 我没有以任何形式运行 cygwin。

现在有趣的是:通常几分钟后,由 mingw32 生成的任何显示此访问被拒绝行为的可执行文件都会自动消失,而无需我的任何干预。

我在谷歌上搜索了一下,但大多数其他结果要么含糊不清,要么不适用。

我想知道是否有一些 Windows 7 安全设置对我的 .exe 造成严重破坏,但我对 Win 7 并不了解,不知道从哪里开始搜索。

有人有想法么?

4

12 回答 12

41

在关闭一些(在我看来是不必要的)Windows 服务后,我遇到了完全相同的问题。事实证明,当我再次开机时,"Application Experience"一切恢复正常。

可能你只需要打开这项服务吗?要打开应用程序体验:

  1. 单击 Windows 开始按钮。

  2. 在标有“搜索程序和文件”的框中键入services.msc并单击搜索按钮。标题为“服务”的新窗口打开。

  3. 右键单击“应用程序体验”行,然后从弹出菜单中选择“属性”。

  4. 将启动类型更改为“自动(延迟启动)”。

  5. 重新启动计算机。

应用程序体验应该可以防止将来出现问题。

于 2011-10-26T14:51:20.730 回答
24

您的程序仍在运行。您必须通过关闭命令行窗口来杀死它。如果您按控制 alt 删除,任务管理器,进程(杀死与您的文件名匹配的那些)。

于 2011-10-12T15:57:15.947 回答
22

如果您认为可执行文件被进程锁定,请尝试 SysInternals 的 Process Explorer。在文件/句柄中,输入 Fibonacci.exe,您应该会看到谁拥有该文件。

如果还不够,您可以使用 Process Monitor(同样来自 SysInternals)来跟踪系统上所有进程在 Fibonacci.exe 上的活动。通过一些分析(调用堆栈),您可能会发现对文件的访问被拒绝的原因以及导致文件消失的原因。

于 2011-10-10T20:09:46.027 回答
8

问题原因: 当前程序的进程仍在运行,没有中断。(这就是你重启后没有这个问题的原因)

修复很简单: 转到cmd并键入命令taskkill -im process_name.exe -f

例如:

 taskkill -im demo.exe -f

这里,

演示 - 是我的程序名称

于 2018-06-23T10:21:08.670 回答
7

最佳解决方案是在 Eclipse IDE 中进入控制台,然后单击红色按钮终止程序。您将看到您的程序正在运行,并且可以在那里看到输出。:) !!

于 2013-01-14T16:10:51.287 回答
4

我有同样的行为,并通过以管理员身份运行 Code::Blocks 来修复它。

于 2012-02-27T16:16:14.953 回答
3
  1. 打开任务管理器 -> 进程 -> 点击 .exe (Fibonacci.exe) -> 结束进程

    如果它不起作用

  2. 关闭 Eclipse IDE(或您使用的任何 IDE)并重复步骤 1。

于 2014-04-25T10:17:57.270 回答
2

我有一个类似的问题。使用名为 Unlocker(版本 1.9.2)的免费软件实用程序,我发现我的防病毒软件(Panda free)在可执行文件上留下了一个挂锁,即使它没有检测到任何威胁。解锁器能够解锁它。

于 2014-09-12T15:31:09.140 回答
1

遇到了同样的问题。读这个。禁用防病毒软件 (mcaffee)。瞧

经防病毒日志确认:

Blocked by Access Protection rule d:\mingw64\x86_64-w64-mingw32\bin\ld.exe d:\workspace\cpp\bar\foo.exe User-defined Rules:ctx3 Action blocked : Create

于 2015-10-15T20:07:20.630 回答
1

它可能是您的防病毒软件。

就我而言,Malwarebytes 持有我程序可执行文件的句柄:

在此处输入图像描述

使用 Process Explorer 关闭句柄,或者只是禁用防病毒软件就可以了。

于 2017-07-07T20:57:05.503 回答
0

gpp-compiler我在使用C++的 Atom 编辑器和 mingw(通过名为 的包)时收到此错误。关闭打开的控制台窗口解决了我的问题。

于 2018-05-30T12:41:03.313 回答
0

我遇到了类似的问题。Bitdefender 自动隔离了我由 MinGW g++ 创建的每个 exe 文件。而不是完整的 exe 文件,我发现了一个扩展名为“qzquar”的文件 testAutoPtr1.exe.48352.gzquar

当我在 Bitdefender 中打开隔离项目时,我发现我的 exe 文件被隔离在那里。

于 2019-01-19T15:07:38.837 回答