首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Keil C 編譯鏈接報錯 L211:輸出文件訪問被拒絕的解決方案

     編輯:程式設計綜合問答

錯誤信息

*** 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、系統盤根目錄)。

快速修復步驟

  1. 以管理員身份運行 Keil:右鍵 Keil 圖標 → 「以管理員身份運行」。
  2. 更改項目輸出路徑:Options for Target → Output → 「Select Folder for Objects」選擇非系統盤、非中文路徑的目錄(如 `D:\KeilProjects\Test\Obj`)。
  3. 檢查文件佔用:任務管理器結束所有 `exam3.1` 進程;暫時關閉殺毒軟件實時防護。
  4. 清理輸出目錄:刪除舊的 `.obj`、`.axf` 文件,重新 Build。

代碼無誤但仍報錯?

示例代碼僅含 `while(1) P1=0x00;`,語法正確。若上述步驟無效,嘗試:

  • 關閉 Keil,刪除項目目錄下 `.uvoptx`、`.uvguix` 等配置文件,重新打開項目。
  • 重新安裝 Keil 至非中文、無空格路徑。
  • 確認磁盤空間充足,NTFS 權限正常。

最佳實踐

嵌入式項目建議:統一將工作區放在 `D:\Workspace`,啟用「Run as administrator」兼容模式,配置版本控制忽略輸出目錄,避免權限與鎖定問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved