none
Visual Studio 2012でのリンクエラー RRS feed

  • 質問

  • 現在、Visual Sudio 2010のプロジェクトをVisual Sudio 2012に自動で変換し、

    ビルドしたところ下記のリンクエーラーが出てしまうようになってしまいました。

    DLL構成のプジェクトにスタティックライブラリをリンクしようとして

    エラーになっているようですが、これを回避する方法はありますでしょうか?

    ■エラー 内容

    error LNK2038: 'RuntimeLibrary' の不一致が検出されました。

     値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'XXX.obj' と一致しません。

    宜しくお願いします。

    2012年8月29日 11:05

回答

  • こんにちは、A567W さん
    フォーラムオペレータの佐伯 玲 です。

    とっちゃん さんの情報の方はご確認頂けたでしょうか?


    また、以下のライブラリの情報も参考になるかもしれません。

    Visual C++ での互換性に影響する変更点
    http://msdn.microsoft.com/ja-jp/library/bb531344.aspx

    以下、日本語翻訳側の中ほどからの抜粋です。
    ------------------------------------------------------
    ITERATOR_DEBUG_LEVEL の不一致の Visual C++ 2010で実装された検出に加えて、
    Visual C++ in Visual Studio 2012 は RuntimeLibrary の不一致を検出します。
    これらは、コンパイラ オプション /MT (静的リリース)、/MTd (静的デバッグ)、/MD (動的リリース)、
    および /MDd (動的デバッグ) が混在する場合に発生します。
    ------------------------------------------------------


    今後ともMSDNフォーラムを宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 佐伯 玲

    • 回答の候補に設定 佐伯玲 2012年9月6日 6:03
    • 回答としてマーク 佐伯玲 2012年9月7日 8:07
    2012年9月4日 6:19
  • コンパイルオプションが一部変更されているような感じに見受けられます。でもヘルプリファレンスにLNK2038の記述がありませんね。。。

    一度、中間ファイル出力先フォルダ(通常プロジェクトのフォルダのDebug)を全部削除してからビルドしてみてはいかがでしょうか?<単純なリビルドではなく


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/

    • 回答の候補に設定 佐伯玲 2012年9月6日 6:03
    • 回答としてマーク 佐伯玲 2012年9月7日 8:07
    2012年8月30日 1:34

すべての返信

  • コンパイルオプションが一部変更されているような感じに見受けられます。でもヘルプリファレンスにLNK2038の記述がありませんね。。。

    一度、中間ファイル出力先フォルダ(通常プロジェクトのフォルダのDebug)を全部削除してからビルドしてみてはいかがでしょうか?<単純なリビルドではなく


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/

    • 回答の候補に設定 佐伯玲 2012年9月6日 6:03
    • 回答としてマーク 佐伯玲 2012年9月7日 8:07
    2012年8月30日 1:34
  • こんにちは、A567W さん
    フォーラムオペレータの佐伯 玲 です。

    とっちゃん さんの情報の方はご確認頂けたでしょうか?


    また、以下のライブラリの情報も参考になるかもしれません。

    Visual C++ での互換性に影響する変更点
    http://msdn.microsoft.com/ja-jp/library/bb531344.aspx

    以下、日本語翻訳側の中ほどからの抜粋です。
    ------------------------------------------------------
    ITERATOR_DEBUG_LEVEL の不一致の Visual C++ 2010で実装された検出に加えて、
    Visual C++ in Visual Studio 2012 は RuntimeLibrary の不一致を検出します。
    これらは、コンパイラ オプション /MT (静的リリース)、/MTd (静的デバッグ)、/MD (動的リリース)、
    および /MDd (動的デバッグ) が混在する場合に発生します。
    ------------------------------------------------------


    今後ともMSDNフォーラムを宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 佐伯 玲

    • 回答の候補に設定 佐伯玲 2012年9月6日 6:03
    • 回答としてマーク 佐伯玲 2012年9月7日 8:07
    2012年9月4日 6:19
  • こんにちは、A567W さん
    フォーラムオペレータの佐伯 玲 です。

    とっちゃん さんと私が紹介させて頂いた投稿をご確認頂けたでしょうか?

    投稿された本質問に対して参考になる思われますので
    勝手ながら一旦私のほうで「回答としてマーク」をさせて頂きました。

    ご確認後に追加の情報や問題などありましたらご返信下さいませ。


    今後ともMSDNフォーラムを宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレーター 佐伯 玲

    2012年9月7日 8:07
  • ご回答ありがとうございます。

    フリーのライブラリーも使用しておりプロジェクト構成が合わせにくい状態でしたが、

    自分のプロジェクト構成をすべて合わせることで、解決することはできましたが

    ビルドオプションで、リンクできてほしいとは思いました。

    ありがとうございました。


    2012年9月8日 16:47