首页 文章

ld.exe:无法打开输出文件...:权限被拒绝

提问于
浏览
44

我最近在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 回答

  • 3

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

  • 0

    得到了同样的问题 . 阅读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

  • 12

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

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

    • 单击Windows开始按钮 .

    • 在标有"Search programs and files"的框中键入 services.msc 并单击搜索按钮 . 将打开一个 Headers 为"Services"的新窗口 .

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

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

    • 重新启动计算机 .

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

  • 6

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

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

  • 2

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

  • 1

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

  • 1
    • 打开任务管理器 - >进程 - >单击.exe(Fibonacci.exe) - >结束进程

    如果它不起作用

    • 关闭eclipse IDE(或您使用的任何IDE)并重复步骤1 .
  • 0

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

  • 2

    可能是您的防病毒软件 .

    就我而言,Malwarebytes正在处理我程序的可执行文件:

    enter image description here

    使用Process Explorer关闭句柄,或只是禁用防病毒工作就好了 .

  • 34

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

  • 20

    Problem Cause : 当前程序的进程仍然在没有中断的情况下运行 . (这就是你重启后没有遇到这个问题的原因)

    The fix is simple : 转到 cmd 并输入命令 taskkill -im process-name.exe -f

    Eg:

    taskkill -im demo.exe -f
    

    这里,

    demo - 是我的程序名称

相关问题