ld.exe:无法打开输出文件…:权限被拒绝
我最近在Windows 7 Ultimate 32bit上安装了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
我甚至不能编辑生成的可执行文件的权限。
我已经检查了通常的嫌疑人:
- 可执行文件确实没有运行。
- 可执行文件的path是可读/写的mingw32(否则它将无法在第一个地方build立)
- 我没有以任何forms或forms运行cygwin。
现在有趣的一点是:通常在几分钟之后,由mingw32生成的显示访问被拒绝行为的任何可执行文件都将自动消失,没有任何我的干预。
我已经使用了这个,但其他大部分结果都是模糊的或不适用的。
我想知道是否有一些Windows 7的安全设置对我的.exe文件造成严重破坏,但我并不了解Win 7的知识,知道从哪里开始search。
有人有主意吗?
如果您认为可执行文件被进程locking,请尝试SysInternals的进程pipe理器。 在文件/句柄,inputFibonacci.exe,你应该看看谁拥有该文件。
如果还不够,可以使用进程监视器(再次从SysInternals)来跟踪系统上所有进程在Fibonacci.exe上的活动。 通过一些分析(调用堆栈),您可能会发现为什么文件的访问被拒绝以及是什么使其消失。
关掉一些(在我看来不需要的)windows服务后,我也遇到了同样的问题。 原来,当我再次打开“应用程序体验”时,一切恢复正常。
也许你只需要打开这项服务? 打开应用程序体验:
-
点击左下方的Windows开始button。
-
在标有“search程序和文件”的框中键入services.msc,然后单击searchbutton。 打开标题为“服务”的新窗口。
-
右键单击“应用程序体验”行,从popup菜单中select“属性”
-
将Staruptypes更改为“自动(延迟启动)”
-
重新启动计算机
应用程序的经验应该可以防止未来的问题。
你的程序仍在运行。 你必须通过closures命令行窗口来杀死它。 如果你按控制ALT删除,任务pipe理器,进程(杀死匹配你的文件名)。
最好的解决scheme是在Eclipse的控制台中点击红色button来终止程序。 你会看到你的程序正在运行,输出可以在那里看到。 :)!
-
打开任务pipe理器 – >进程 – >点击.exe(Fibonacci.exe) – >结束进程
如果不行的话
-
closuresEclipse IDE(或者你使用的任何IDE)并重复步骤1。
我有相同的行为,并通过以pipe理员身份运行Code :: Blocks来修复它。
我有一个类似的问题。 使用名为Unlocker(版本1.9.2)的免费软件实用程序,我发现我的防病毒软件(Panda free)在可执行文件上留下了一个挂起的锁,即使它没有检测到任何威胁。 解锁器能够解锁它。
有同样的问题。 阅读这个 。 禁用防病毒软件(mcaffee)。 Et瞧
通过防病毒日志确认:
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
它可能是您的防病毒软件。
在我的情况下,Malwarebytes对我的程序的可执行文件持有句柄:
使用进程资源pipe理器来closures句柄,或者只是禁用防病毒工作就好了。