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

61

我最近在Windows 7 Ultimate 32位上安装了带有mingw32的CodeBlocks,以便恢复我的C编程技能,但这个问题让我有些困惑。

我决定写一个简短的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的了解还不够深入,不知道从哪里开始搜索。

有人有什么想法吗?


4
这只是一种猜测……如果你正在构建到bin\Debug目录下,那么code::blocks可能会在其集成调试器中执行某些操作,保持对可执行文件的文件句柄打开状态。尝试构建发布版本,看看是否有同样的问题。 - Rag
1
我认为@BrianGordon的猜测是正确的。如果程序正在运行,在尝试重新构建之前,请将其终止。 - Keith Thompson
2
可执行文件消失了?就是它们会自动被删除?听起来像是病毒扫描器的问题。 - tinman
1
Victor T. : 我刚刚遇到了权限被拒绝的问题。 tinman: 没有安装防病毒软件,我只是偶尔运行 McAfee Stinger。 今晚我会查看 UAC。 - Gissur Þórhallsson
1
你的 Code::Blocks 项目不应该创建在像 C、C://users//你的用户名、C://ProgramFiles 或 C://ProgramFiles/Code::Blocks 这样的目录中。 - 2147483647
显示剩余4条评论
12个回答

1
我遇到了类似的问题。Bitdefender自动隔离了我使用MinGW g++创建的每个exe文件。在完整的exe文件之外,我发现了一个带有奇怪扩展名“qzquar”的文件testAutoPtr1.exe.48352.gzquar。
当我在Bitdefender中打开隔离项目时,发现我的exe文件被隔离在那里。

0

我在使用Atom编辑器和mingw(通过一个名为gpp-compiler的包)进行C++编程时遇到了这个错误。关闭打开的控制台窗口解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接