我最近在Windows 7旗舰版32bit上安装了mingw32的CodeBlocks以消除我的技能,但是这个问题让我有点难过 .
我决定发射一个短的Fibonacci发生器,以确保我的设置正常,但我遇到了障碍 .
该程序编译,链接和诸如魅力之类的东西,我得到一个相应的可执行文件,按预期运行 .
如果我再次尝试编译会出现问题,然后我得到以下内容:
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知道从哪里开始搜索 .
有人有主意吗?
11 回答
我遇到了类似的问题 . 使用名为Unlocker(版本1.9.2)的免费软件实用程序,我发现我的防病毒软件(Panda free)在可执行文件上留下了一个挂锁,即使它没有检测到任何威胁 . 解锁者能够解锁它 .
得到了同样的问题 . 阅读this . 禁用防病毒软件(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
关闭一些(在我看来是不必要的)Windows服务后,我遇到了完全相同的问题 . 事实证明,当我再次打开时
"Application Experience"
一切恢复正常 .可能你只需要打开这项服务?要打开应用程序体验:
单击Windows开始按钮 .
在标有"Search programs and files"的框中键入
services.msc
并单击搜索按钮 . 将打开一个 Headers 为"Services"的新窗口 .右键单击“应用程序体验”行,然后从弹出菜单中选择“属性” .
将启动类型更改为“自动(延迟启动)” .
重新启动计算机 .
应用程序经验应该可以防止将来出现问题 .
如果您认为可执行文件已被进程锁定,请尝试从SysInternals处理Process Explorer . 在文件/句柄中,输入Fibonacci.exe,您应该看到谁拥有该文件 .
如果还不够,您可以使用Process Monitor(再次来自SysInternals)来跟踪Fibonacci.exe上系统上所有进程的活动 . 通过一些分析(调用堆栈),您可能会发现为什么对文件的访问被拒绝以及什么使它消失 .
您的程序仍在运行 . 你必须通过关闭命令行窗口来杀死它 . 如果你按控制alt删除,任务管理器,进程`(杀死与你的文件名匹配的那些) .
最佳解决方案是在eclipse IDE中进入控制台,然后单击 red button 以终止程序 . 您将看到您的程序正在运行并且可以在那里看到输出 . :) !!
如果它不起作用
我有相同的行为,并通过以管理员身份运行Code :: Blocks来修复它 .
可能是您的防病毒软件 .
就我而言,Malwarebytes正在处理我程序的可执行文件:
使用Process Explorer关闭句柄,或只是禁用防病毒工作就好了 .
我在使用Atom编辑器和mingw(通过名为
gpp-compiler
的包)获取C时出现此错误 . 关闭打开的控制台窗口解决了我的问题 .Problem Cause : 当前程序的进程仍然在没有中断的情况下运行 . (这就是你重启后没有遇到这个问题的原因)
The fix is simple : 转到 cmd 并输入命令 taskkill -im process-name.exe -f
Eg:
这里,
demo - 是我的程序名称