程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編譯器-怎樣設置VS的編譯選項,生成Debug版的靜態庫(lib)?

編譯器-怎樣設置VS的編譯選項,生成Debug版的靜態庫(lib)?

編輯:編程綜合問答
怎樣設置VS的編譯選項,生成Debug版的靜態庫(lib)?

各位前輩,我在開發中遇到了這樣一個問題:
我手頭有一個靜態庫,有代碼,並且分別在debug和release模式下成功編譯出了不同版本的lib庫文件。我在其它的項目中需要鏈接這個庫,並且Debug版本的程序鏈接debug版本的靜態庫,release版本的程序鏈接release版本的靜態庫。現在的情況是,release版本的程序生成成功,debug版本的程序提示鏈接錯誤:
Logger_D.lib(StaticLogger.obj) : error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2”(dllmain.obj 中)
查看網上的信息,都說是鏈接的庫的debug版本或release版本不匹配,可是我明明是編譯並鏈接了對應版本的靜態庫啊~
於是一不做二不休,在release版本的程序中鏈接了debug版的靜態庫試試——竟然也能成功!這說明我根本就沒有成功生成debug版本的靜態庫!可是將編譯選項翻了一遍又一遍,就是找不出原因~
懇請各位前輩指教,到底應該怎樣設置編譯選項,生成Debug版本的靜態庫啊?

最佳回答:


各位前輩,問題解決了~
我用二進制查看器找到lib文件裡的_ITERATOR_DEBUG_LEVEL字段,將值手動改為2(0x30改為0x32,一共5處),順利通過鏈接。但是原因還是不清楚。
只好手動修改二進制文件了~
激動中~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved