1.エラーと原因分析
それともヒント:エラーLNK2038:ミスマッチの検出「_ITERATOR_DEBUG_LEVELは」:値が「0」「2値と一致していません。
これらの問題の根本的な原因は、あなたがdubugとlibのライブラリのデバッグやリリースバージョンを参照または準拠していないプロジェクトのバージョンをリリースするということです。ファイルのバージョンを参照するときにそのような問題は、あなたが合うように注意を払うようにしたいです。
2.解決
この問題は、解決するために、様々な状況に分割する必要があります。
2.1の設定ランタイム
ランタイムの設定には、いくつかのプロジェクトと同じではありませんか?
この回避策では:
アイテムのプロパティ - >構成プロパティ - > C / C ++ - >コード生成 - >ランタイム
我々は同様に、ライン上に設定されている マルチスレッドデバッグ(/ MD)
次のリリースでは、ライブラリのバージョンを合わせるには問題ありません。しかし、コンパイラの特定のエラーLNK2038:ミスマッチの検出「_ITERATOR_DEBUG_LEVEL」:値「0」は「2」を値と一致していません
理由:私の次のリリースは、このプロジェクトは、「デバッグマルチスレッドDLL(/ MDD)」に設定し、ライブラリを実行するように設定されています。これは、デバッグの下に設定する必要があります設定である、あなたは、「マルチスレッドDLL(/ MD)」次のリリースを設定する必要があります。
2.2 LIBリンカ入力デバッグバージョンのリリースバージョンを変更します
同様に、が提案されている、ミスマッチの検出「_ITERATOR_DEBUG_LEVEL」:値が「2」の値と一致しません「0」
上記の現象のヒント現在のプロジェクトは、リリースバージョンである、ライブラリ・ファイル参照のデバッグバージョンは、ちょうどその上に現在のリリースモードデバッグモードを変更する必要があります。
オープンソリューション - 「プロパティ - 」リンカ - 「入力 - 」libのファイル名のリリースバージョンで参照追加の依存関係。
例としては、次のとおりです:
参考記事
エラーLNK2038が:不一致は、「ランタイムライブラリ」が検出:値「MDd_DynamicDebug」一致しない「MTd_StaticDebug」