「error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MDd_DynamicDebug' が MD_DynamicRelease の値 '***' と一致しません。」の対処法

ランタイムライブラリのエラーについて詰まったので対処法を共有。

発生した問題

プロジェクトのプロパティからランタイムライブラリの設定を統一しているにも関わらず、以下のエラーが解消しない。外部ライブラリの設定も統一させていた。

 

「error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MDd_DynamicDebug' が MD_DynamicRelease の値 '***' と一致しません。」

 

解決策

.cppファイルのプロパティも個別に設定することで解決した。.cppファイルのランタイムライブラリの設定がプロジェクトから継承されていないことが原因だった。特にいじった記憶はないのだが…

Box2DをVisual Studioでビルド時に生じるエラー

環境

原因

Box2D v3.0.0ではstdatomic.hが使用されている。stdatomic.hはC++23から採用されたものであるが、プロジェクトのC++言語標準がC++17であった。

解決策

Box2Dのバージョンをv2.4.1まで下げた。stdatomic.hが使用されていないため、ビルドが通る。

Box2Dの最新バージョンを使用したい場合は、C++言語標準を23以上に設定することでも解決できるかもしれない。