我剛剛通過Visual Studio(C++)解決方案移到另一臺計算機上,設置了所有目錄和設置,據我所知,並做了一個清理/重建解決方案。我在編譯一堆.obj文件時遇到了上述錯誤,不知道該怎麼辦。_iterator_debug_level值'0'與值'2'不匹配
回答
看來你是混合使用不同設置構建的對象文件。嘗試做一個完整的乾淨的重建,並檢查所有的項目文件設置,以確保_ITERATOR_DEBUG_LEVEL宏是相同的(例如,你不混合調試和釋放構建的對象)。
混合二進制文件(目標文件)是一個原因;另一個(我遇到的)是發佈版本中_DEBUG
宏的錯誤定義。 _DEBUG
不是標準宏,而是由Microsoft使用。
在Emacs編輯.vcxproj -file後,我輸錯_DEBUG
,而不是NDEBUG
的釋放,遇到完全相同的生成錯誤。
爆炸...... :) – Sandip 2015-04-20 06:59:55
在某些情況下,混合的選項中
屬性>配置屬性> C/C++>代碼生成>運行 庫
之間包含庫(IES)和目前工作項目 可能會導致此問題。
根據使用情況,在所有項目中統一設置爲/MD
或/MT
或/MDd
或/MTd
。
謝謝,它的工作。 – lourencoccc 2016-03-10 19:58:50
我發現(奇怪)_CRT_NON_CONFORMING_SWPRINTFS導致它。當我刪除它時,我沒有看到「_iterator_debug_level值'0'與值'2'不匹配,而是出現以下警告:
錯誤6錯誤C4996:'_swprintf':swprintf已更改爲符合與ISO C標準一起,添加一個額外的字符計數參數。要使用傳統的Microsoft swprintf,請設置_CRT_NON_CONFORMING_SWPRINTFS。
我一直在試圖解決這個問題五天。點雲庫(PCL)代碼在調試模式下成功建立,但在發佈模式下失敗。
我重新配置了我的庫幾次,但它沒有幫助。我發現問題是發佈版本繼承_DEBUG,所以我沒有在項目屬性>>預處理器>>處理器定義下選中它,並且它已經解決了。
- 1. QT Creator _ITERATOR_DEBUG_LEVEL不匹配
- 2. 不匹配:「1」值不匹配值「0」 MSVCRTD.LIB
- 3. Array.IndexOf 2個匹配值c#
- 4. 匹配2個數組值
- 5. mysql查找與匹配值不匹配的匹配鍵
- 6. 分配的變量值與API響應值不匹配
- 7. 匹配值與列表
- 8. [R匹配值與變量
- 9. 與鍵匹配的值
- 10. PHP與數組值匹配
- 11. 某些`BigDecimal`值與`Float`不匹配
- 12. 列計數與值計數不匹配
- 13. CRC32計算與默認值不匹配
- 14. SQL全文匹配值只返回布爾值(1或0),匹配的項目
- 15. 數值與多個值匹配r中
- 16. 匹配預測值與實際值
- 17. 匹配值與值dataframes一列
- 18. Null值匹配組不匹配/工作
- 19. 正則表達式匹配幣值(帶小數點2位),但不爲0
- 20. 列數與行數不匹配。如何匹配值
- 21. 索引0值匹配的總和列表值?
- 22. 匹配2個數組的值
- 23. 檢查2個字段的匹配值
- 24. 加入的值不匹配?
- 25. XSL返回值不匹配
- 26. 顯示不匹配的值
- 27. 摘要值不匹配
- 28. C++類型/值不匹配
- 29. jQuery不匹配表值
- 30. substr值不匹配preg_match_all PREG_PATTERN_ORDER
由於某種原因,我的一個項目在釋放模式下定義了_SECURE_SCL = 1,這導致鏈接器錯誤。 – Gyuri 2012-03-10 05:29:06
另一種可能性是一些項目/源文件定義_HAS_ITERATOR_DEBUGGING – korbes 2016-12-02 18:54:12