錯誤信息
*** FATAL ERROR L211: I/O ERROR ON OUTPUT FILE:
EXCEPTION 0029H: ACCESS TO FILE DENIED
FILE: exam3.1
Target not created
直接原因
鏈接器無法在輸出目錄寫入可執行文件 `exam3.1`(無副檔名),常見於:
- 輸出目錄不存在或只讀。
- 文件被其他進程佔用(如上次運行未退出、殺毒軟件掃描)。
- Windows UAC 阻止非管理員進程寫入受保護目錄(Program Files、系統盤根目錄)。
快速修復步驟
- 以管理員身份運行 Keil:右鍵 Keil 圖標 → 「以管理員身份運行」。
- 更改項目輸出路徑:Options for Target → Output → 「Select Folder for Objects」選擇非系統盤、非中文路徑的目錄(如 `D:\KeilProjects\Test\Obj`)。
- 檢查文件佔用:任務管理器結束所有 `exam3.1` 進程;暫時關閉殺毒軟件實時防護。
- 清理輸出目錄:刪除舊的 `.obj`、`.axf` 文件,重新 Build。
代碼無誤但仍報錯?
示例代碼僅含 `while(1) P1=0x00;`,語法正確。若上述步驟無效,嘗試:
- 關閉 Keil,刪除項目目錄下 `.uvoptx`、`.uvguix` 等配置文件,重新打開項目。
- 重新安裝 Keil 至非中文、無空格路徑。
- 確認磁盤空間充足,NTFS 權限正常。
最佳實踐
嵌入式項目建議:統一將工作區放在 `D:\Workspace`,啟用「Run as administrator」兼容模式,配置版本控制忽略輸出目錄,避免權限與鎖定問題。