首页 > 解决方案 > 根据 GL 标志的 Visual Studio 19-17 库兼容性

问题描述

我在 VS2010 中有一个相当大的 C++ 解决方案,我将把它升级到 VS2017 或 VS2019(2019 更可取)(很明显我必须重建所有第三方等)另外,我有一个 C++ VS2017 上的解决方案,它不会更新到 VS2019,并且我有机会从这个 sln 到主 sln 包含动态库(这意味着 .h + .lib + .dll)。两种解决方案中的某些项目都使用 /GL 标志,所以我担心:不会有问题吗?例如:

  1. 带有 /GL 的 VS2019 是指没有 /GL 的 VS2017 .dll + .h + .lib
  2. VS2019 without /GL 是指 VS2017 .dll + .h + .lib 用 /GL 构建
  3. VS2019 with /GL 指的是 VS2017 .dll + .h + .lib 用 /GL 构建

在这个想法上,它应该可以正常工作,但我不是 100% 确定。有没有人有过这样的经历?

标签: c++dllvisual-studio-2017visual-studio-2019

解决方案


整个程序优化不影响dll的ABI。“程序”在这里指的是 dll 或可执行文件。没有跨 dll 边界执行优化。

您应该确保所有静态库都使用相同的标志构建,否则整个程序优化将不起作用,在这种情况下编译器会打印警告。


推荐阅读