我们可以将 c++ 标准编译与 MSVC 混合使用吗?
Posted
技术标签:
【中文标题】我们可以将 c++ 标准编译与 MSVC 混合使用吗?【英文标题】:Can we mix c++ standard compile with MSVC? 【发布时间】:2021-05-19 07:10:54 【问题描述】:我认为 gcc 正在尝试支持this。
但是,我找不到任何有关 MSVC 的参考资料。
我的代码库目前基于 c++17 构建。我想在 c++20 中使用新的协程功能,但现在不想迁移所有代码。目标是构建一些支持协程的组件。
【问题讨论】:
这是一个有趣的问题,但最好编辑并提供您的真实用例。 我的代码库目前基于 c++17 构建。我想在 c++20 中使用新的协程功能,但现在不想迁移所有代码。目标是构建一些支持协程的组件。 您可以使用edit将您的评论添加到原始帖子中。 MSVC 在 2015 年、2017 年和 2019 年之间与 ABI 兼容。这些版本之间没有 ABI 更改。因此,我不明白为什么不能这样做。 docs.microsoft.com/en-us/cpp/porting/… 【参考方案1】:MSVC binary compatibility 的规则适用。对象在版本之间是链接兼容的(只要您不使用链接时代码生成或整个程序优化)。由于该页面没有说明除了/LTCG
和/GL
之外的任何其他编译器开关都会破坏这个承诺,/std:
也不会这样做。
【讨论】:
以上是关于我们可以将 c++ 标准编译与 MSVC 混合使用吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 system() 函数 (MSVC) 编译 c++ 代码?