方法一:專案檔案視圖直接加入
- 方案總管 → 專案右鍵 → 「加入」→ 「現有項目」
- 篩選
*.lib,選擇目標庫檔
- 缺點:Debug/Release 兩版需手動切換或維護兩條路徑
方法二:專案屬性 → 連結器 → 輸入 → 附加相依性
- 專案右鍵 → 「屬性」→ 「連結器」→ 「輸入」
- 「附加相依性」編輯框加入庫檔完整路徑或檔名 (需在「附加庫目錄」中)
- 可分別在 Debug/Release 組態頁設定不同庫檔
方法三:原始碼指令 #pragma comment(lib, "xxx.lib") (最推薦)
// 標頭檔或通用 cpp
#ifdef _DEBUG
#pragma comment(lib, "MyLibD.lib") // Debug 版
#else
#pragma comment(lib, "MyLib.lib") // Release 版
#endif
優勢
- 隨程式碼走,無需設定專案屬性
- 條件編譯自動切換 Debug/Release 版本
- 避免「忘記切換庫版本」導致的執行期崩潰
必要配套:引入對應標頭檔
無論哪種方法,使用庫功能前必須 #include "MyLib.h" 取得函數原型與類別定義。
常見坑
- 庫與專案執行期庫不匹配 (/MT vs /MD) → 連結錯誤或多重定義
- 32/64 位元不匹配 → LNK1112
- 庫符號未導出 (
__declspec(dllexport) 缺失) → LNK2001
建議流程
- 庫專案設定「輸出目錄」統一至
$(SolutionDir)Lib\$(Configuration)\
- 消費者專案「附加庫目錄」加入上述路徑
- 消費者原始碼用
#pragma comment(lib, "MyLib.lib") + 條件編譯
- 標頭檔放入共用
Include 目錄,專案「附加包含目錄」引用