2010-08-10 41 views
3

這是我在嘗試編譯使用gcc一個簡單的Hello World程序時。用gcc編譯在Windows 7上: mingw32的 BIN ld.exe:無法打開輸出文件A.EXE

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將其更改爲任何其他驅動器:\不會改變驅動器。

+1

要更改爲驅動器D,請使用'cd/d d:\'或只是'd:'。但是,不,你不想在驅動器的根部工作。如果你有問題,你可以使用'mkdir'或者使用資源管理器來創建一個目錄 - 資源管理器應該通過UAC提示來幫助你解決權限錯誤。 – Rup 2010-08-10 17:52:48

+0

@Rup感謝您的回答。 – stirredo 2010-08-10 18:07:52

回答

6

是的,它是一個權限問題,你不能運行在管理員模式下的命令行窗口。

不要用C的工作:\

將文件複製到一個文件夾下的我的文檔,或下的子目錄:,或其他驅動器。

或者,運行在管理員模式下的控制檯,如果你真的想在C盤根工作:

要切換到d:而在C:只需輸入d:(你只有當已經在使用CD正確的驅動器)

+1

謝謝,解決了它。 – stirredo 2010-08-10 17:55:59

0

最常見的情況是,你的程序可能仍然在後臺,可能掛在一個無限循環中運行。您可以嘗試搜索進程列表中的進程(按Alt + Ctrl + Del)並殺死它。

+0

我試過任務管理器,但沒有提及exe。我在描述中寫道。 感謝您的回覆。 – stirredo 2010-08-10 17:57:11

-2

CodeBlocks-IDE中的build-log中的g ++。exe命令顯示命令 ,並且附加路徑爲:C:\MinGW\lib,這是錯誤的。

  1. 如果在命令複製到一個cmd窗口(在你的項目的目錄) 沒有C:\MinGW\lib編譯器的工作原理。如CodeBlocks-Buil-log中所示覆制命令時,它會失敗,並在cmd窗口中顯示相同的消息。

  2. 看一看的Settings > Compiler > Search Directories > Linker。你必須刪除那裏的 C:\MinGW\lib,但是錯誤是,如果你這樣做,它不會被刪除。 你必須重複它,然後才能正常工作。

相關問題