2017-01-11 2 views
0

私はVisual Studio 2015でC++ DLLを構築していますが、私は静的にリンクする必要があることを意味するVisual Studio開発環境なしで別の(内部、顧客ではない)マシンにデバッグビルドを展開したいと思いますMSVCRT(リンカーオプション '/ MTd')。私のプロジェクトは、 '/ MDd'でビルドされているように見える静的ライブラリfoo.lib(デバッグバージョン)に依存していて、リンクしている間は期待通りにスローされます:DLLプロジェクトでリンクしている静的ライブラリの 'MDd_DynamicDebug'を上書きできますか?

"foo.lib(bar.obj):エラーLNK2038: 'RuntimeLibrary'の不一致が検出されました: 'MDd_DynamicDebug'の値がdllmain.objの 'MTd_StaticDebug'と一致しません "

これを無効にして '/ MTd'を強制する方法はありますか?

+0

foo.libのソースはありますか?その場合は、/ MTdを使用してビルドしてください。もしそうでなければ、私はあなたが縛られていると思います。 –

答えて

0

外部のlibソースをお持ちの場合は、/MTdコンパイラスイッチを使用して簡単に再ビルドできます。使用可能なソースがない場合は、別の実行時使用モデルを強制的に使用する方法はありません。クライアントマシン上でリモートデバッグの必要があるためにリリースされていないバージョンを配布しようとしている場合は、リリースバージョンを配備できますが、無効化された最適化、有効なランタイムチェック、デバッグ情報などがあります。標準的なライブラリ要素、デバッグはうまくいくはずです。

関連する問題