Visual Studio 2015 と Visual Studio 2019 の間の C++ バイナリ互換性C++ Binary Compatibility between Visual Studio 2015 and Visual Studio 2019

Visual Studio 2013 以前では、バージョンの異なるコンパイラ ツールセットやランタイム ライブラリで構築されたオブジェクト ファイル (OBJ)、スタティック ライブラリ (LIB)、ダイナミック ライブラリ (DLL)、実行可能ファイル (EXE) の間のバイナリ互換性が保証されていませんでした。In Visual Studio 2013 and earlier, binary compatibility between object files (OBJs), static libraries (LIBs), dynamic libraries (DLLs), and executables (EXEs) built by using different versions of the compiler toolset and runtime libraries was not guaranteed.

Visual Studio 2015 以降では、C++ ツールセットのメジャー番号が 14 になります (Visual Studio 2015 は v140、Visual Studio 2017 は v141、Visual Studio 2019 は v142)。In Visual Studio 2015 and later, the C++ toolset major number is 14 (v140 for Visual Studio 2015, v141 for Visual Studio 2017, and v142 for Visual Studio 2019). これは、ランタイム ライブラリといずれかのバージョンのコンパイラでコンパイルされたアプリケーションの両方に、バイナリ互換性があるという事実を反映するものです。This reflects the fact that both the runtime libraries and the applications compiled with either version of the compiler are binary compatible. つまり、Visual Studio 2015 でビルドされたサードパーティのライブラリがある場合、Visual Studio 2017 または Visual Studio 2019 でビルドされたアプリケーションからこのライブラリを使用するために再コンパイルする必要はありません。This means that if you have third-party library that was built with Visual Studio 2015, you don't have to recompile it in order to consume it from an application that is built with Visual Studio 2017 or Visual Studio 2019.

このルールの唯一の例外として、/GL コンパイラ スイッチでコンパイルされたスタティック ライブラリまたはオブジェクト ファイルは、バイナリ互換性がありません。The only exception to this rule is that static libraries or object files that are compiled with the /GL compiler switch are not binary compatible.

サポート対象のさまざまなバージョンの MSVC ツールセットでビルドされたバイナリを混在させると、アプリケーションの実行基盤の Visual C++ 再頒布可能パッケージには、アプリまたはそれが使用するすべてのライブラリのビルドに使用されるツールセットのいずれのバージョンよりも古いものは使用できません。When you mix binaries built with different supported versions of the MSVC toolset, the Visual C++ redistributable that your application runs on cannot be older than any of the toolset versions used to build your app or any libraries it consumes.

関連項目See also

Visual C++ の変更履歴Visual C++ change history