【问题标题】:vc142 and 2019 redistributable package comparison with vc141vc142 和 2019 可再发行包与 vc141 的比较
【发布时间】:2019-07-09 08:49:37
【问题描述】:

在部署使用 vc142 构建的 C++ 应用程序时,是否有理由(我猜是的,但我尝试发现)安装 2019 可再发行组件,因为应用程序似乎与之前的可再发行组件包(即将推出用vc141)?我记得两者都是二进制兼容的,但更重要的是,2017 年和 2019 年可再发行的 msvcp140.dllvcruntime140.dlldumpbin /exports 产生相同的输出;文件大小也一样。

我错过了什么吗?

【问题讨论】:

  • 你试过bindiff吗?
  • 显然它们是二进制兼容的:devblogs.microsoft.com/cppblog/…
  • @Ben 我已经在 vcruntime140.dll 和 msvcp140.dll 上尝试过使用 dumpbin.exe / 导出和比较输出差异的工具,它们是相同的
  • 我相信兼容性承诺是针对 vc140 和 vc141 编译的库将在运行时与 vc142 库一起工作,不一定反过来。如果正确,您应该发布最新版本。
  • dumpbin 显示导出的函数名称。 Bindiff 会告诉你实现是否相同。

标签: c++ visual-studio


【解决方案1】:

显然没有问题,这些库是可兼容的,请参阅:https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=vs-2019

文章指出:“这反映了运行时库和使用任一版本的编译器编译的应用程序都是二进制兼容的事实。”

也许存在与性能相关的差异。

由于 vs 2019 支持比 2017 更高的 c++ 标准,这让人们想知道如何使用旧的运行时库来实现这一点。我猜这些差异都内置在主可执行文件/dll中,不需要对运行时dll进行任何更改。

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多