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 競合が発生します。ここで何が間違っていますか?どうすれば競合を解決できますか? 前もって感謝します!