这篇 SO 帖子: Visual-C++-2017 二进制文件是否与 VC++-2015 兼容?明确表示 VS 2017 与 VS 2015 二进制兼容。它甚至看起来像官方的立场。
我的问题是,在过去,我清楚地记得每次尝试将使用不同版本的 MSVC 编译的静态库链接到 EXE 时遇到链接器错误(我不记得具体的错误集)使用更新版本的 MSVC 构建。
然而,二进制(不)兼容性听起来像是在运行时而不是链接时会在你面前爆炸的东西。
有人可以告诉我以前版本的 MSVC 是否确实在版本不匹配时产生了链接器错误?这是如何实现的?
编辑
这对打开 WPO/LTCG 构建的静态库有何影响?我相信这些会产生中间目标文件(而不是 COFF),并且微软不保证这些中间文件的格式在不同版本的编译器中保持不变。