檢測到"_ITERATOR_DEBUG_LEVEL"的不匹配項


error:
vtkCommon.lib(vtkSmartPointerBase.obj) : error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2”(cloudviewer.obj 中)
1>vtkCommon.lib(vtkGarbageCollector.obj) : error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2”(cloudviewer.obj 中)
1>vtkCommon.lib(vtkDebugLeaksManager.obj) : error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2”(cloudviewer.obj 中)
 
錯誤原因是: Debug使用了Release的庫文件。
即使你連接庫里面兩個都添加着呢,但是release庫文件放在了debug前面,也是出錯的。默認按順序使用庫文件。
 
類似錯誤:如release下使用了Debug的庫文件,報錯類似:
error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項:  值“2”不匹配值“0”.
 
小問題花大時間!哎
 
值“2”不匹配值“0”.解決辦法:

詳細考證后,發現這一選項vs提供了設定。即只需要在預處理定義中設定其值符合要調用的程序設定即可。vs2010中,debug模式下默認值為2,release的模式的默認值為0 。其設定方法如下:

項目-〉屬性-〉配置屬性-〉C/C++ -〉預處理器-〉預處理定義 -〉添加“_ITERATOR_DEBUG_LEVEL=0”即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM