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

这是我在尝试用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:\将其更改为任何其他驱动器时不会更改驱动器。

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

不要在C:

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

或者,如果您真的想在C的根目录中工作,请以管理员模式运行控制台:

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

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

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 ,但是如果你这样做的话就会删除它。 你必须重复它然后它的工作原理。