[VS依賴庫管理]Boost動態連結
當你使用boost動態連結函式庫時,編譯時會出現以下的錯誤代碼嗎? error C1189: #error : "Mixing a dll boost library with a static runtime is a really bad idea..." 的確,boost 自動連結功能(auto-linking) 帶給我們便利性,節省專案設置的時間,然而如何正確設定專案就成為很重要課題。以上錯誤代碼C1189意思是『 用靜態Runtime混合boost動態連結庫真的昰一個錯誤想法 』,也就是說Boost動態連結的專案屬性設置錯誤。 設定Boost動態連結的專案屬性主要有以下的步驟: 在前置處理器,強制動態連結Boost函式庫 在Code Generation選擇Runtime Library 增加Boost標題檔和函式庫的路徑 錯誤代碼C1189就是在第二步Runtime Library設定錯誤,此步驟主要設定在多執行緒模式下如何連結C和C++執行函式庫(C and C++ Runtime Library),依據偵錯和發佈(Debug & Release)和靜態和動態函式庫(Static & Dll函式庫)主要分成以下四種: Multi-threaded (/MT) Multi-threaded Debug (/MTd) Multi-threaded DLL (/MD) Multi-threaded Debug DLL (/MDd) 簡單來說,若字尾帶有-d即偵錯版,沒有小寫d即發佈版。還有,判斷動態連結庫依據是多執行緒(Multi-threaded)後面是否有DLL,即縮寫為(/MD),而靜態連結則是直接為多執行緒縮寫(/MT)。 環境 Windows 7 64 bit VS C++ 2015 方案:ThirdPartyExample 專案名稱:TestBoost_Dynamic 專案配置:Win32 Debug & Release Boost 1.59.0 下載教學: Boost簡介與分割 所使用到動態連結程式庫(dll) Boost.System Boost.DateTime Boost.Reg