我最近在Windows 7 Ultimate 32bit上安裝了帶有mingw32的CodeBlocks以清除掉我的c技能,但是這個問題讓我有些難住。ld.exe:無法打開輸出文件...:權限被拒絕
我決定點燃一根短斐波那契發生器,以確保我的設置正常,但我遇到了一個障礙。
該程序編譯,鏈接和不像一個魅力,我得到一個相應的可執行文件運行如預期。如果我試圖重新編譯發生
的問題,然後我得到如下:
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知道從哪裏開始搜索。
任何人有任何想法?
下面是一個總猜測......如果你正在構建bin \ Debug目錄,那麼code :: blocks可能會對它的集成調試器做一些事情,讓可執行文件上的文件句柄保持打開狀態。嘗試建立它的發佈,看看你是否有同樣的問題 –
我認爲@布賴恩戈登的猜測是一個很好的。如果程序正在運行,請在嘗試重建之前將其終止。 –
它在Debug和Release中表現相同,並且如果我從cmd運行gcc。 在附註中,似乎只有在我實際運行可執行文件後纔會發生。 我開始認爲這絕對是一個安全設置的事情。 – gzzzur