2013年4月20日 星期六

NetBeans 編譯 C/C++ 出現 cannot open output file dist/Debug/MinGW-Windows/ctest.exe: Permission denied

用 NetBeans 寫 C/C++,第一次編譯成功,關掉內建的執行視窗。修改內容,重新編譯卻一直出現錯誤訊息。

c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot open output file dist/Debug/MinGW-Windows/ctest.exe: Permission denied
collect2.exe: error: ld returned 1 exit status
make[2]: *** [dist/Debug/MinGW-Windows/ctest.exe] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

make[2]: Leaving directory `/d/C/Ctest'
make[1]: Leaving directory `/d/C/Ctest'


BUILD FAILED (exit value 2, total time: 1s)


查了一下,
http://forums.netbeans.org/post-74976.html
發現當我的程式沒跑完(例如停在 scanf),此時關掉內建的執行視窗,並沒有實際將程式關掉,在工作管理員的處理程序還可以看到仍在執行中。

所以當修改了程式內容,要重新編譯時。
因上一次編譯的執行檔還在執行,所以沒有權限取代正在執行的執行檔,而無法重新編譯。

[解決方法]
  • 在工作管理員把沒實際關閉的程式關掉。
  • 或在 NetBeans 最下面的狀態列,按「X」也可以將正在跑的程式關掉(有點不起眼,所以很容易沒看到)。如下圖。
  • 也可以將內建執行使用的 Terminal 改成外部的 Command Window,
    如此以後執行時,都會用外部的 Terminal 執行,關掉執行視窗時,整個程式也會確實關閉。
    設定方法:「Run」->「Set Project Configuration」->「Customize...」->「Run」
    Console type 改成 External terminalExternal terminal type 改成 Command Window

沒有留言:

張貼留言