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

Posted

技术标签:

【中文标题】无法打开输出文件,权限被拒绝【英文标题】:Cannot open output file, permission denied 【发布时间】:2011-10-16 01:36:03 【问题描述】:

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

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

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

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

第一次发生这种情况时,我添加到代码中的唯一内容是在之前版本中添加的内容是发送给 cout 的调试报告——几乎没有什么神秘的东西。即使没有从以前的版本更改代码,有时也会发生这种情况。

这可能是什么?这不是破坏游戏,但它很烦人,我宁愿它没有变得更糟。

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

检查“filename.exe”是否未运行,我猜您使用的是 Microsoft Windows,在这种情况下,您可以使用任务管理器或进程资源管理器:http://technet.microsoft.com/en-us/sysinternals/bb896653 在尝试生成之前杀死“filename.exe” .

【讨论】:

它不一定要运行,另一个进程可以有一个打开的句柄,Process Explorer 是这类工作的首选武器【参考方案4】:

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

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

我在D盘重新安装了C::B,而我的程序文件夹在C盘

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

【讨论】:

【参考方案8】:

问题与 Sam 的回答有关:

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

避免杀死进程,我们有两种选择,等到进程释放.EXE文件,否则重启IDE会更快解决这个问题。

【讨论】:

这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。 我的回答是:“避免杀死进程,我们有两种选择,等到进程释放.EXE文件,否则这个问题会更快地重新启动IDE解决。”再读一遍…… @Elanasys 如果我误解了您的回答,我很抱歉。这被标记为“质量非常低”,我是从审核队列中来到这里的。您可能需要考虑稍微扩展您的答案,因为就目前而言,这取决于 Sam 的答案是否完全清楚。无论哪种方式,都没有必要对我的一个答案投反对票。 还要考虑您的“答案”作为对 Sam 帖子的评论会更好,因为目前看来,它似乎没有直接回答问题。【参考方案9】:

对于 Linux 操作系统... 转到您创建文件的文件。然后通常 ......project_name/bin/Debug/project_name.executable 对于这个可执行文件,您将没有执行权限,然后是执行权限。如果您无法更改权限,请右键单击,然后使用打开终端(命令提示符) 更改权限。 首先使用'cd'命令进入那个可执行文件然后使用“chmod u+x”然后权限将会改变。然后去c::b打开并执行你会得到输出。

只有你需要做的所有文件的事情。

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

好吧,一旦我遇到了同样的问题,并且在追踪使文件处于使用状态的过程后,我发现它是防病毒 (PANDA) ...我刚刚解锁了文件并简单地解决了.. ..根据我的经验,我使用了 Unlock 1.9.2 ...尝试一下 ..

【讨论】:

【参考方案12】:

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

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

【讨论】:

【参考方案13】:

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

Windows7 64 位、MinGW、Eclipse、CDT

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

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

【讨论】:

【参考方案14】:

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

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

【讨论】:

【参考方案15】:

造成这种情况的主要原因(我最近遇到过)是如果你有这个,例如闪存驱动器。

您可以开发和做任何事情,但在大多数系统上,它会阻止您从那里运行 .exe 文件,无论是调试版本还是发布版本。

【讨论】:

【参考方案16】:

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

【讨论】:

【参考方案17】:

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

【讨论】:

【参考方案18】:

就我而言 - 我发现了一个名为

的进程
cb_console_runner

我停止了这个过程,一切又好了。

【讨论】:

【参考方案19】:

我遇到了同样的问题。只需将您的 .CPP 文件重命名为其他名称,然后再试一次。 它对我有用。

【讨论】:

以上是关于无法打开输出文件,权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

无法打开流或文件:无法打开流:权限被拒绝[重复]

无法打开流或文件:无法打开流:权限被拒绝

“无法打开流或文件“laravel.log”:无法打开流:权限被拒绝”

我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]

无法打开流或文件“/app/storage/logs/laravel.log”:无法打开流:权限被拒绝

xampp ubuntu laravel 无法打开流或文件“/storage/logs/laravel log”:无法打开流:权限被拒绝