在Windows 7上使用GCC进行编译:\ mingw32 \ bin \ ld.exe:无法打开输出文件a.exe

时间:2010-08-10 17:42:56

标签: c gcc compilation permission-denied

这是我在尝试用gcc编译一个简单的hello world程序时得到的。

c:\>gcc hello.c
hello.c:9:2: warning: no newline at end of file
C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot open output file a.exe
: Permission denied
collect2: ld returned 1 exit status

是否与Windows 7管理权限有关?

如果正在创建输出文件但无法打开,它位于何处?

对不起,如果这是一个noobie问题太多了。到目前为止,我一直在使用Dev-C ++来编译我的源代码。我尝试使用谷歌搜索错误,但我发现所有文件已经打开,但在任务管理器中没有提到这样的exe。

编辑:该文件也位于C:\ hello.c

如果我把它放在其他驱动器中,我能做到吗?

当我将文件放在D:\并尝试使用cd将其更改为任何其他驱动器时d:\不会更改驱动器。

3 个答案:

答案 0 :(得分:6)

是的,这是权限问题,您不能在管理员模式下运行命令行窗口。

不能在C:\

中工作

将文件复制到我的文档下的文件夹,或C:或其他驱动器的子文件夹中。

或者,如果您真的想在C:

的根目录中工作,请以管理员模式运行控制台

要在C:中切换到D:,只需输入D :(只有在正确的驱动器上才使用CD)

答案 1 :(得分:0)

最常见的情况是您的程序可能仍在后台运行,可能在无限循环中被挂起。您可以尝试在流程列表中搜索流程(按 Alt + Ctrl + Del )并将其删除。

答案 2 :(得分:-2)

CodeBlocks-IDE中的build-log中的g ++ .exe-command显示命令 使用其他路径:C:\MinGW\lib,这是错误的。

  1. 如果将命令复制到cmd窗口(在项目目录中) 没有C:\MinGW\lib编译器工作。如CodeBlocks-Buil-log所示复制命令失败时,cmd窗口中显示相同的消息。

  2. 查看Settings > Compiler > Search Directories > Linker。你必须删除 C:\MinGW\lib那里,但是错误是,如果你这样做就不会被删除。 你必须重复它然后它才有效。