Skip to content

Commit 8cd4b4e

Browse files
TylerMSFTTylerMSFT
authored andcommitted
wording
1 parent b361b21 commit 8cd4b4e

1 file changed

Lines changed: 3 additions & 5 deletions

File tree

docs/porting/binary-compat-2015-2017.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,11 @@ We've changed this behavior in Visual Studio 2015 and later versions. The runtim
1414

1515
There are three important restrictions on binary compatibility between the v140, v141, v142, and v143 toolsets and minor numbered version updates:
1616

17-
- Binaries created with different versions of the v140, v141, v142, and v143 toolsets can be combined. The key rule is that the linker should only work with inputs built by toolsets that are either earlier or the same version as itself. For example:
17+
- Binaries created with different versions of the v140, v141, v142, and v143 toolsets can be combined. The key rule is that the linker should only work with inputs built by toolsets that are either earlier or the same version as itself. This linking applies to apps and libraries, including static libraries. In some cases it also applies to import libraries for [implicitly linked](../build/linking-an-executable-to-a-dll.md#implicit-linking) DLLs, especially if the import library strictly uses extern “C” for the imports/exports. For example:
1818
- An app compiled with a 2017 toolset (v141, versions 15.0 to 15.9) can be linked to a static library compiled with Visual Studio 2019 version 16.2 (v142), but the linking must be done using a version 16.2 or later toolset.
1919
- A version 16.2 library can be linked to a version 16.4 app, but only if you use the 16.4 or later toolset.
20-
- Apps and libraries (including both static libraries and import libraries for [implicitly linked](../build/linking-an-executable-to-a-dll.md#implicit-linking) built using VS 2015, 2017, or 2019 can be linked together, but the linking must be done using a version of the toolset that is as recent as, or more recent than, the most recent toolset used to build any of the binaries.
21-
- If you have three binaries built with toolsets from VS 2015 version 14.3, VS 2017 version 15.1, and VS 2017 version 15.6, you can link them using any toolset version that is 15.6 or later.
22-
23-
In some cases, this will also work for import libraries, especially if the import library strictly uses extern “C” for the imports/exports.
20+
- Apps and libraries built using VS 2015, 2017, or 2019 can be linked together, but the linking must be done using a version of the toolset that is as recent as, or more recent than, the most recent toolset used to build any of the binaries.
21+
- Given three binaries built with toolsets from VS 2015 version 14.3, VS 2017 version 15.1, and VS 2017 version 15.6, you can link them using any toolset version that is 15.6 or later.
2422

2523
- The Redistributable your app uses has a similar binary-compatibility restriction. When you mix binaries built by different supported versions of the toolset, the Redistributable version must be at least as new as the latest toolset used by any app component.
2624

0 commit comments

Comments
 (0)