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”即可。
