Visual C++ 專案目錄下產生大量副檔名檔案,理解其用途有助於版本控制配置、建置問題診斷與專案清理。本文提供完整分類對照表。
核心原始碼與專案檔案
| 副檔名 | 用途 | 版控建議 |
.cpp | C++ 實作原始碼 | ✅ 必須 |
.h / .hpp | 頭文件 (宣告、介面) | ✅ 必須 |
.rc | 資源腳本 (對話框、選單、圖示、字串表) | ✅ 必須 |
.rc2 | 非編輯器管理的資源 (手工維護) | ✅ 建議 |
.dsp | VC6 專案檔 (專案設定、檔案列表) | ✅ VC6 專案必須 |
.dsw | VC6 工作區檔 (包含多專案) | ✅ VC6 專案必須 |
.vcxproj | VS2010+ 專案檔 (MSBuild 格式) | ✅ 必須 |
.sln | 方案檔 (專案關聯、組態) | ✅ 必須 |
.vcxproj.filters | 專案篩選器 (方案總管虛擬資料夾) | ✅ 建議 |
建置中間與輸出檔案
| 副檔名 | 用途 | 版控建議 |
.obj | 編譯輸出目標檔 | ❌ 忽略 |
.exe / .dll | 連結輸出執行檔/動態庫 | ❌ 忽略 (或放 artifacts) |
.lib | 靜態庫/導入庫 | ❌ 忽略 |
.pch | 預編譯標頭輸出 | ❌ 忽略 |
.pdb | 程式資料庫 (除錯符號) | ❌ 忽略 (發布版可保留) |
.ilk | 增量連結狀態檔 | ❌ 忽略 |
.exp | DLL 匯出符號表 | ❌ 忽略 |
.map | 連結映射檔 (地址/符號對照) | ❌ 忽略 |
IDE 狀態與快取檔案
| 副檔名 | 用途 | 版控建議 |
.opt | 開發環境參數 (工具列位置、視窗佈局) | ❌ 忽略 |
.aps | AppStudio 資源快取 (二進位) | ❌ 忽略 |
.clw | ClassWizard 資訊 (INI 格式) | ❌ 忽略 (可手工修復) |
.ncb | 無編譯瀏覽資料庫 (IntelliSense 快取) | ❌ 忽略 (刪除可重建) |
.suo | 方案使用者選項 (斷點、啟動專案、視窗狀態) | ❌ 忽略 |
.user | 專案使用者選項 (VS2010+) | ❌ 忽略 |
建置日誌與文件檔案
| 副檔名 | 用途 | 版控建議 |
.plg | 建置日誌 (HTML 格式,含錯誤/警告) | ❌ 忽略 |
.hpj | 說明專案 (Microsoft Help Compiler) | 視需求 |
.bsc | 瀏覽資訊檔 (原始碼瀏覽器) | ❌ 忽略 |
.mdp | 舊版專案檔 (DevStudio),可轉換為 .dsp | ❌ 忽略 |
.gitignore 範本 (VC++ 專案)
# 建置輸出
[Dd]ebug/
[Rr]elease/
x64/
*.obj
*.exe
*.dll
*.lib
*.pdb
*.ilk
*.exp
*.map
# 中間檔案
*.pch
*.ncb
*.suo
*.user
*.aps
*.clw
*.opt
*.plg
# VS 專案特定
*.vcxproj.user
*.vcxproj.filters (可選忽略)
# 工具特定
*.bsc
*.mdp
特殊檔案處理提示
.clw 損壞導致 ClassWizard 異常:刪除後重開專案自動重建
.ncb 導致 IntelliSense 失效:關閉方案刪除 .ncb 重開
.aps 資源編輯器異常:刪除可強制重新解析 .rc
.suo 包含使用者私有設定,**絕不**提交版控
- 大型專案
.pdb 可達數百 MB,建置輸出目錄需排除備份