VS靜態編譯設定

2021-09-25 00:00:26 字數 1226 閱讀 7199

首先必須搞清楚專案->專案屬性->配置屬性->c/c++->**生成->執行庫中四個選項的關係: 

多執行緒除錯dll (/mdd) 對應——-md_dynamicdebug 

多執行緒dll (/md) 對應————-md_dynamicrelease 

多執行緒(/mt) 對應—————–md_staticrelease 

多執行緒(/mtd)對應—————-md_staticdebug 

在msdn中有詳細解釋: 

一句話總結就是:d用於動態,t用於靜態,帶d的是debug模式的。那麼出現類似如下錯誤資訊:

lnk2038 檢測到「_iterator_debug_level」的不匹配項: 值「0」不匹配值「2」

lnk2038 檢測到「runtimelibrary」的不匹配項: 值「md_dynamicrelease」不匹配值「mdd_dynamicdebug」

一般就是用release模式去鏈結了乙個debug編譯出的lib,或者用debug模式鏈結了release編譯的lib。因此先檢查上面的執行庫是否對應正確,release模式一定不能選mdd或mtd的。 

若出現下面這種警告資訊: 

請檢查專案->專案屬性->配置屬性->鏈結器->輸入->附加依賴項裡面是否包含了錯誤的lib, 檔名中由d結尾的都是debug模式才能鏈結,沒有d的只有release模式才能鏈結。例如,如opencv幾個release編譯的lib:

cv210.lib cvaux210.lib cxcore210.lib highgui210.lib ml210.lib
只能在release模式下鏈結,對應的debug版本就是:

cv210d.lib cvaux210d.lib cxcore210d.lib highgui210d.lib ml210d.lib
當上面的問題都解決後,又出現下面這個錯誤資訊的話:

error lnk2038: 檢測到「runtimelibrary」的不匹配項: 值「mdd_dynamicdebug」不匹配值「mtd_staticdebug」
opencv3.0靜態編譯:

VS 設定靜態編譯

vs2015 在debug模式下邊的 exe檔案只能在本機執行,若需要在其他pc上正常執行,需要編譯 待靜態庫的 release版本,如下 需要發布程式先在工具欄的某個顯示著 debug 的combobox裡切換到release配置 專案屬性 配置屬性 常規 mfc的使用 使用標準windows庫 ...

VS2015靜態編譯設定

首先必須搞清楚專案 專案屬性 配置屬性 c c 生成 執行庫中四個選項的關係 多執行緒除錯dll mdd 對應 md dynamicdebug 多執行緒dll md 對應 md dynamicrelease 多執行緒 mt 對應 md staticrelease 多執行緒 mtd 對應 md sta...

VS如何設定OpenCV靜態編譯

可以使用opencv提供的靜態鏈結庫也可以自己編譯靜態鏈結庫.1 使用opencv提供的靜態鏈結庫,位置如下圖.首先設定vs配置.有如下幾個配置 1 工具 選項 專案和解決方案 vc 目錄 包含目錄.配置圖中的opencv243那3項.2工具 選項 專案和解決方案 vc 目錄 庫檔案 加入完是這個樣...