水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:请教一个MSVC的abi兼容问题
楼主
|
miui
|
2022-04-14 16:28:38
|
只看此ID
MSVC 14.x是ABI-compatible的,是不是意味着vs2015-vs2022中任意一个版本编译出来
的静态库,可以被上述任意一个版本的vs正确链接?
我怎么依稀记得之前有个项目链接到不同vs版本编译的库出现abi兼容错误了呢?不过我
现在复现不出来了
--
FROM 123.116.157.*
1楼
|
z16166
|
2022-04-14 17:56:48
|
只看此ID
这个官方说得很详细。大版本兼容,但有例外或者说限制
https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170
--
FROM 114.241.228.*
2楼
|
miui
|
2022-04-14 19:49:37
|
只看此ID
多谢解答,不过限制条件的第一点没有太明白,是说程序编译环境toolset版本要高于静态库的toolset吗?可是我用vs2015(14.0)编译的程序是可以链接vs2019(14.2)生成的静态库的。
【 在 z16166 (Netguy) 的大作中提到: 】
: 这个官方说得很详细。大版本兼容,但有例外或者说限制
:
https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170
: --
:
--
FROM 114.254.0.*
3楼
|
z16166
|
2022-04-14 20:03:01
|
只看此ID
是说执行link操作的toolset的版本要大于等于生成各个二进制产物(obj/lib)的toolset的版本
【 在 miui 的大作中提到: 】
: 多谢解答,不过限制条件的第一点没有太明白,是说程序编译环境toolset版本要高于静态库的toolset吗?可是我用vs2015(14.0)编译的程序是可以链接vs2019(14.2)生成的静态库的。
--
FROM 114.241.228.*
4楼
|
miui
|
2022-04-14 20:14:46
|
只看此ID
我用vs2015 编译程序,不就是vs2015执行link吗?它可以link vs2019生成的库啊,这不是不符合限制条件吗?有点小白,还请不吝赐教
【 在 z16166 (Netguy) 的大作中提到: 】
: 是说执行link操作的toolset的版本要大于等于生成各个二进制产物(obj/lib)的toolset的版本
:
:
: 【 在 miui 的大作中提到: 】
--
FROM 114.254.0.*
5楼
|
z16166
|
2022-04-14 20:22:47
|
只看此ID
官方就是这个规定,也没说为啥,但常识告诉我们这是后向兼容的要求。
按规定来能保证没问题;不按规定来,不出问题倒没啥,出了问题你可能都不一定能察觉
【 在 miui 的大作中提到: 】
: 我用vs2015 编译程序,不就是vs2015执行link吗?它可以link vs2019生成的库啊,这不是不符合限制条件吗?有点小白,还请不吝赐教
--
FROM 114.241.228.*
6楼
|
miui
|
2022-04-14 20:37:46
|
只看此ID
好的,多谢了
【 在 z16166 (Netguy) 的大作中提到: 】
: 官方就是这个规定,也没说为啥,但常识告诉我们这是后向兼容的要求。
:
: 按规定来能保证没问题;不按规定来,不出问题倒没啥,出了问题你可能都不一定能察觉
:
--
FROM 114.254.0.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版