c++ - 根据 GL 标志的 Visual Studio 19-17 库兼容性
问题描述
我在 VS2010 中有一个相当大的 C++ 解决方案,我将把它升级到 VS2017 或 VS2019(2019 更可取)(很明显我必须重建所有第三方等)另外,我有一个 C++ VS2017 上的解决方案,它不会更新到 VS2019,并且我有机会从这个 sln 到主 sln 包含动态库(这意味着 .h + .lib + .dll)。两种解决方案中的某些项目都使用 /GL 标志,所以我担心:不会有问题吗?例如:
- 带有 /GL 的 VS2019 是指没有 /GL 的 VS2017 .dll + .h + .lib
- VS2019 without /GL 是指 VS2017 .dll + .h + .lib 用 /GL 构建
- VS2019 with /GL 指的是 VS2017 .dll + .h + .lib 用 /GL 构建
在这个想法上,它应该可以正常工作,但我不是 100% 确定。有没有人有过这样的经历?
解决方案
整个程序优化不影响dll的ABI。“程序”在这里指的是 dll 或可执行文件。没有跨 dll 边界执行优化。
您应该确保所有静态库都使用相同的标志构建,否则整个程序优化将不起作用,在这种情况下编译器会打印警告。
推荐阅读
- loops - 赛普拉斯条件循环 - 未达到变量?
- c# - 为什么 .Net Core 3.1 项目在发布到个人托管服务器(不是 IIS 和 Azure)时不起作用?
- javascript - 使用 Node 将文件的文本打印到控制台
- php - 如何从 laravel 后端仪表板拆分 vuejs 组件的设计
- c++ - C++17,string + string_view 给出编译错误
- windows - 如何批量进行并行处理?
- c# - 学习 C# 并理解这个错误。无法将类型“double”隐式转换为“int”。存在显式转换
- javascript - 按星期几的条件重定向
- testing - 简单笑话测试失败 (Salesforce LWC)
- java - 如何以successfulAuthentication方法返回整个用户?