无法打开输出文件,权限被拒绝


72

因此,在尝试使用CodeBlocks编译C ++代码时,我总是收到此错误。

无法打开输出文件[filename.exe]权限被拒绝

它只是从今天开始,并且是零星的和不一致的。如果我关闭CodeBlocks并重新启动项目,通常会消失,但并非总是如此。有时我按几次F9(build&run)甚至消失了。我总是检查任务管理器,但是从来没有任何运行过.EXE的文件名或与之相关的文件。

我还注意到,如果发生此问题,然后尝试手动删除.EXE或与之交互,Windows会告诉我我需要管理员权限(这是一台私人PC,据我所知是管理员)。

第一次发生时,除了先前版本中的内容外,我添加到代码中的唯一一件事是发送给cout的调试报告-几乎没有什么奥秘的东西。即使以前的代码没有更改,有时也会发生。

这可能是什么?它并没有打破游戏规则,但是很烦人,我希望它不会变得更糟。

编辑:到目前为止,这已经很老了,但是以防万一其他人遇到类似的问题,我当前使用的解决方法是在尝试再次运行代码之前,始终删除[filename.exe]。尽管这很烦人,但是可以避免该问题。

Answers:


115

检查“文件名.exe”没有运行,我想你正在使用微软的Windows,在这种情况下,您可以使用任务管理器或Process Explorer:http://technet.microsoft.com/en-us/sysinternals/bb896653到在尝试生成“ filename.exe”之前将其杀死。


4
它不一定必须在运行,另一个进程可以在上面打开句柄,Process Explorer是进行此类工作的首选武器
Gearoid Murphy

13

我遇到了同样的问题。我发现它可能与终止运行结果的方式有关。当您运行代码时,无论是否有打印输出,调试器都会调用控制台,该控制台将打印“按任意键继续...”。如果您通过按键终止控制台,就可以了。如果通过单击关闭按钮来执行此操作,则会出现您所描述的问题。当您以后一种方式终止它时,必须等待几分钟才能重建代码。


4

我只是有同样的问题。而且我体验到,当我运行程序并更改一些代码而没有完成仍在运行的程序时,总是会发生这种情况。之后,出现“无法打开...”消息。

但是我通过单击控制台窗口右上角的“ Terminate”按钮(红色按钮)摆脱了它,然后“删除所有终止的启动”(终止按钮旁边有两个x)消除了它。这似乎关闭了正在运行的程序,并且之后一切正常:)希望这可以对任何人有帮助


3

当IDE因崩溃或其他故障而出现问题,并且IDE仍保持EXE状态时,通常会发生此错误,从而防止用户(您自己)在重建过程中覆盖/删除EXE。


2

您好,我知道这篇文章很旧,但是无论如何,这是我的看法。当您使用关闭图标而不是按“任何键继续”来关闭控制台输出窗口时,会出现此错误


2

问题与山姆的回应有关:

“您遇到了同样的问题。我发现它可能与终止运行结果的方式有关。当您运行代码时,无论是否有打印输出,调试器都会调用控制台,该控制台将打印“按任意键继续...”。如果您通过按键终止控制台,就可以了;如果通过单击“关闭”按钮来终止,则问题将如您所描述的那样出现。几分钟后,您才能重建代码。”

避免终止进程,我们有两种选择,请等到进程释放.EXE文件,否则将可以更快地重新启动IDE来解决此问题。


这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方发表评论。
AstroCB 2014年

我的回答是:“避免杀死进程,我们有两种选择,请等到进程释放.EXE文件,否则此问题将可以更快地重新启动IDE来解决。” 重新阅读...
Jorgesys 2014年

@Elanasys很抱歉,如果我误解了您的答案。这被标记为“质量很差”,我是从审查队列中来到这里的。您可能需要考虑扩展答案,因为就目前情况而言,它完全取决于Sam的答案。无论哪种方式,都不能对我的答案之一投反对票。
AstroCB 2014年

还应考虑将您的“答案”用作对Sam帖子的评论更好,因为就目前而言,它似乎无法直接回答问题。
AstroCB 2014年

2

我也遇到了同样的问题,这使我发疯:

Windows7 64位,MinGW,Eclipse,CDT

权限被拒绝错误,可执行文件消失,ld.exe错误。它只会工作一次,但永远不会。像这样的语句:“无法打开输出文件***。exe:权限被拒绝”

检查您的ANTIVIRUS软件。一旦我关闭了工作区中的防病毒软件,然后清理了工作区并重新启动了项目,就再也没有问题了。


1

您可以使用sysinternals中的进程资源管理器来查找哪个进程已打开文件。


1

尝试重新启动您的IDE。它为我工作。尽管我试图在任务管理器中结束该过程,但该过程从未被杀死。


1

我在驱动器D中重新安装了C :: B,而我的程序文件文件夹在驱动器C中

我不知道原因,但是可以用:)


1

好吧,一旦我遇到了同样的问题,在追踪了使用该文件的过程之后,我发现它是防病毒软件(PANDA)...我只是将文件解锁并简单地解决了....根据我的经验,我使用Unlock 1.9.2 ...尝试出来..


1

一个主要的原因(我最近有过)是,例如,如果您将其安装在闪存驱动器上。

您可以开发并执行所有操作,但是在大多数系统上,无论是调试版本还是发行版,它都使您无法从那里运行.exe文件。



0

对于LINUX OS ...请转到您创建的文件所在的文件。然后通常在此可执行文件中............如果无法更改权限,请单击,然后使用使用打开的终端(命令promt)更改权限。首先使用“ cd”命令转到该可执行文件,然后使用“ chmod u + x”,然后更改权限。然后转到c :: b打开并执行,您将获得输出。

对于所有文件,您只需要这样做。


0

问题是您没有管理员权限来访问它,因为在基本C驱动器中正在运行或正在编译某些内容。要消除此问题,请以管理员身份运行devcpp.exe。您还可以通过属性更改权限,并允许系统和系统对访问权限进行读写修改等。


0

确保以“管理员模式”运行7zip以解压缩到程序文件。

另外,过去暂时关闭病毒防护功能对某些人也有用。


0

我尝试了@willll所说的,它奏效了。我的确没有找到以我的项目命名的.exe,但是我确实杀死了一些看起来很奇怪的任务(在Internet上检查它们并不重要之后),并且它起作用了。


0

我尝试从任务管理器中获取结束任务IDE后的输出。稍后清理驱动器中的所有临时文件。启动您的IDE。现在,您的.exe正常运行。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.