錯誤現象
OpenCV 3.1.0 編譯報大量 `LNK2001: 無法解析的外部符號`。
原因
僅包含頭文件(`.h`/`.hpp`)不夠,鏈接器找不到函數實現,需額外添加 **庫文件(`.lib`)** 並確保 **DLL 在運行時可達**。
Visual Studio 配置步驟
- 包含目錄:`專案屬性 → C/C++ → 一般 → 附加包含目錄` 加入 `opencv\build\include`。
- 庫目錄:`專案屬性 → 鏈接器 → 一般 → 附加庫目錄` 加入 `opencv\build\x64\vc14\lib`(視 VS 版本、架構調整)。
- 附加依賴項:`專案屬性 → 鏈接器 → 輸入 → 附加依賴項` 加入具體 `.lib` 文件,如:
> `opencv_world310.lib`(3.1 版單一庫)
> 或分模組:`opencv_core310.lib; opencv_imgproc310.lib; opencv_highgui310.lib; ...`
- 運行時 DLL:將 `opencv\build\x64\vc14\bin\opencv_world310.dll` 複製到 `.exe` 同目錄,或加入系統 `PATH`。
常見坑
- **Debug/Release 混用**:Debug 需 `opencv_world310d.lib`,Release 需 `opencv_world310.lib`。
- **版本不匹配**:頭文件 3.1.0、庫文件 3.4.0 → LNK2001/運行崩潰。
- **架構不匹配**:x86 專案鏈接 x64 庫,或反過來。
- **NuGet 安裝**:`Install-Package OpenCV` 自動配置上述所有,推薦新手使用。