0

OpenGL を使用するプロジェクトに取り組んでいます。ただし、プロジェクトをビルドすると、「LNK4098 の解決: defaultlib 'MSVCRT' は ... と競合しています」というリンカの警告が表示されます。

私はこの警告について多くのことを読んでいて、私の GLEW が MSVCRT.dll を使用していることを Dependency Walker を使用して見つけました (それが「デフォルト ライブラリ」であるため、そうあるべきだと思います)。しかし、GLFW3.DLL を調べると、MSVCR120.DLL を使用していると表示されます。MSVCR120.DLL は、アプリケーションで競合を引き起こしていると思われる間違った DLL です。

そこで、ウェブサイトのソースコードを使って GLFW をゼロから構築してみます。プロジェクトで次の設定を編集しました。

  • ターゲット拡張子 -> 最初に .lib をビルドし、次に .dll をビルドします
  • プラットフォーム ツールセット -> v120
  • 構成タイプ -> 最初に .lib をビルドし、次に .dll をビルドします

次に、C/C++ -> コード生成 -> ランタイム ライブラリで、マルチスレッド DLL (/MD) を選択します。

コンパイルする前に、すべてを「リリース」に置きます。

すべてを再構築して再度検査すると、MSVCR120.dll を使用していると表示され、よく知られている LNK4098 競合が発生します。ここで何が間違っていますか?どうすれば競合を解決できますか? 前もって感謝します!

4

1 に答える 1