1

この問題には多くの質問がありますが、私は答えを得るのに苦労しています。特定のエラーメッセージがあります:

gurobi_c++mdd2010.lib(Env.2010.omdd) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in DataHelper.obj

Visual Studio 2010 のリリース x64 ビルドで。Gurobi ライブラリはサードパーティ ソフトウェアで、DataHelper は私のクラスです。

DataHelper で設定_ITERATOR_DEBUG_LEVEL=0しても問題は解決せず、ファイル内の 'debug' .lib または .dll にリンクしていないようです。_SECURE_SCLファイルに設定されていません。

_ITERATOR_DEBUG_LEVEL=2プリプロセッサ定義を設定しようとしたところ、次のようになりました。

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h(113): fatal error C1189: #error :  _ITERATOR_DEBUG_LEVEL > 1 is not supported in release mode.

問題が私の側またはサードパーティ側にあることを確認し、サードパーティのライブラリである場合は回避策を提案できますか?

ありがとうメラニー

4

3 に答える 3

1

_ITERATOR_DEBUG_LEVEL > 1がリリース モードでサポートされておらず、エラー メッセージが で_ITERATOR_DEBUG_LEVEL== 2 であることを示している場合gurobi_c++mdd2010.lib、そのライブラリまたはその依存関係のいずれかがデバッグ ビルドである必要があります。

この角度を調査することはおそらく価値があるので、ここをチェックして、プロジェクト設定に基づいて正しいライブラリをリンクしていることを確認してください。

于 2013-05-08T04:31:17.167 に答える
0

gurobi_c++mdd2010.lib の代わりに gurobi_c++md2010.lib をリンクする必要があります。

mdd の 2 番目の d はデバッグを表します。

于 2015-04-16T05:43:20.417 に答える
0

VS2005 から VS2010 に移行したソリューションでも同様の問題がありました。静的ライブラリと実行可能ファイルの 2 つのプロジェクトがありました。どうやらVS2010に静的ライブラリを実行可能ファイルにリンクするように指示する方法は複数あります。これらの方法の 1 つは、実行可能ファイルのプロジェクトのプロパティ ページの「フレームワークと参照」を使用することです。[Add New Reference...] をクリックして、ここにスタティック ライブラリを追加すると、OP の質問に記載されているリンカ エラーが発生します。これは、デバッグ ビルドとリリース ビルドを気にしないためです。両方で同じスタティック ライブラリを取得します。その結果、2 つのうちの 1 つにエラーが発生します。私の解決策は、参照を削除し(「参照の削除」をクリック)、「リンカー>入力>追加の依存関係」および「リンカー>一般>」を使用することでした

于 2014-03-04T22:40:16.393 に答える