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

时间:2011-07-29 15:25:40

标签: c++ compiler-errors codeblocks permission-denied

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

  

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

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

我还注意到,如果出现此问题,然后我尝试手动删除.EXE或以其他方式与之交互,Windows告诉我需要管理员权限才能执行此操作(这是私有PC,并且至我知道我是它的管理员。)

它第一次出现时,我在代码中添加的唯一内容超出了以前版本的内容,这是一个发送给cout的调试报告 - 几乎没有什么是神秘的。即使没有从先前版本更改代码,有时也会发生这种情况。

这可能是什么?这不是破坏游戏的,但它令人恼火,我宁愿它也不会变得更糟。

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

19 个答案:

答案 0 :(得分:92)

检查“filename.exe”是否未运行,我猜您使用的是Microsoft Windows,在这种情况下,您可以使用任务管理器或Process Explorer:http://technet.microsoft.com/en-us/sysinternals/bb896653来杀死“filename.exe”,然后再尝试生成它。

答案 1 :(得分:11)

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

答案 2 :(得分:3)

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

答案 3 :(得分:3)

我遇到了同样的问题。我经历过,当我运行程序并更改一些代码而不完成程序仍在运行时,它总会发生。之后,"无法打开......"消息出现。

然而,我通过点击"终止"来摆脱它。控制台窗口右上角的按钮(红色按钮)和之后的#34;删除所有已终止的启动" (终止按钮旁边的两个x)。 这似乎关闭了正在运行的程序,一切正常后:)希望这可以帮助任何人

答案 4 :(得分:2)

您好我知道这篇文章已经过时了,但无论如何这里是我的意见。 当您使用关闭图标关闭控制台输出窗口而不是按“任何键继续”

时,会出现此错误

答案 5 :(得分:2)

问题与Sam的回应有关:

  

“遇到了同样的问题。我发现它可能有   与终止运行结果的方式有一些关系。当你   运行你的代码,无论是否有打印输出,调试器都会调用   控制台打印“按任意键继续...”。如果你终止   通过按键控制台,没关系;如果你这样做,点击关闭   按钮,问题就像你描述的那样。当你终止它时   后一种方式,你必须等待几分钟才可以   重建你的代码。“

避免kill进程,我们有两个选择,等到进程释放.EXE文件或者这个问题将更快地重新启动IDE。

答案 6 :(得分:1)

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

答案 7 :(得分:1)

尝试重新启动IDE。它对我有用。 虽然我试图在任务管理器中结束该过程,但该过程从未被杀死。

答案 8 :(得分:1)

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

我不知道原因,但它有效:)

答案 9 :(得分:0)

我有同样的问题。只需将.CPP文件重命名为其他名称,然后重试即可。 它对我有用。

答案 10 :(得分:0)

就我而言 - 我找到了一个名为

的过程
cb_console_runner

我停止了这个过程,事情又恢复了。

答案 11 :(得分:0)

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

答案 12 :(得分:0)

我尝试了@willll所说的,但它确实奏效了。我确实找到了以我的项目命名的.exe,但我确实杀了一些奇怪的任务(在互联网上检查后他们并不重要),并且它有效。

答案 13 :(得分:0)

这个(我最近)的一个主要原因是,如果您使用此功能,例如闪存驱动器。

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

答案 14 :(得分:0)

确保在“管理员模式”下运行7zip以解压缩到Program Files。

此外,过去暂时关闭病毒防护对某些人有效。

答案 15 :(得分:0)

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

Windows7 64位,MinGW,Eclipse,CDT

权限被拒绝错误,可执行文件消失,ld.exe错误。它会工作一次,但再也不会。 语句如:"无法打开输出文件***。exe:权限被拒绝"

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

答案 16 :(得分:0)

好吧,一旦我遇到了同样的问题,并且在追踪正在使用该文件的过程之后,我发现它是反病毒(PANDA)......我刚刚解锁了文件并简单地解决了.. ..为了我的经验,我使用了解锁1.9.2 ...试试我...

答案 17 :(得分:0)

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

答案 18 :(得分:0)

FOR LINUX OS ... 转到你创建文件的文件。然后通常 ...... project_name / bin / Debug / project_name.executable此处为此可执行文件您不具有执行权限然后执行权限。如果您无法更改权限,请右键单击,然后使用use open terminal(命令promt) )改变许可。 首先使用' cd'转到该可执行文件命令然后使用" chmod u + x"然后权限会改变。然后转到c :: b open并执行,你将获得输出。

只有所有文件的东西你需要这样做。