本文分享了以 MinGW 爲主要編譯模塊的編譯器,如 MinGW 自身,以及Dev-Cpp、CodeBlocks 這些調用 MinGW 進行編譯的編譯器,在編譯連接過程中出現 Permission Denied 錯誤的解決方法。同樣,可能也適用於其他 EXE 文件突然出現的莫名拒絕訪問問題。
本文並非轉載,但解決方法轉自 StackOverflow。
着急的童鞋可以直接看 解決方法 部分,不能保證針對所有人都有效,但實際證明大部分 Windows 7 中出現這個問題都可以有效解決。
問題描述
不知何時起,我們的編譯連接逐漸成爲一件難事。Win 7 下使用 MinGW、Dev-Cpp、CodeBlocks 等進行編譯時有時候會 Permission Denied 的問題,大致描述如下:
·通常第一次編譯連接不會出問題,程序也能正常運行
·第二次編譯往往會出現 ld 報錯 Permission Denied 的情況
·再過幾分鐘後,故障莫名消失,編譯連接運行後的再次編譯連接,故障復現
很是無奈……尤其是這故障貌似還是間歇式的。
在解決問題之前,我曾對故障分析了很久,又詳細記錄了從編譯連接到程序運行至結束再到下一次編譯連接的過程中,系統的各種舉動。起初還懷疑過 MSE 和 Windows Defender。這些分析與記錄我不打算詳列了,畢竟那沒有對我解決問題起到任何幫助作用。
解決方法
來來回回翻了不知道多少論壇、博客,一直沒有找到可行的方法,最後終於在 StackOverflow 一個英文頁面中找到了關鍵之處。
最簡單處理方法:啓動 AeLookupSvc 即可。
直接到 cmd 下(管理員)輸入如下:
C:\> sc config AeLookupSvc start= delayed-auto
[SC] ChangeServiceConfig 成功
C:\> sc start AeLookupSvc
最後一個啓動服務的似乎可以不加,delayed-auto 也可以寫成 demand,不過如果不行的話還是 delayed-auto 吧。注意不要缺少空格。或是到 services.msc 中修改 Application Experience 啓動類型爲手動或自動(延遲),最好是自動(延遲)。
重新編譯連接程序,然後運行,馬上再次重新編譯連接,成功。如果經嘗試不曾成功,請嘗試重啓。如果還是不能解決問題,請評論留下你遇到的問題及你的電腦一些相關狀況。
來源
在 StackOverflow 上看到的問題鏈接 click here。
本文所介紹方法原回答 click here。
寫在最後
在百度或是谷歌很久卻無緣答案後,不如到英文網站上看看,有很多國內高手懶得回答而小白卻不會的疑難也許就能解決。
同時,就當學英語了。