如何在CMake中使用VC模块

发布时间:2019-11-09 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了如何在CMake中使用VC模块脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
MS Visual C 2015 Update 1 implements the Modules proposal.

以下是它的工作原理示例:
资料来源:

// c.ixx             |  // b.ixx                   |  // a.cpp
module GM;           |  import GM;                 |  import FM;
export void g() {}   |  module FM;                 |  int main() { f(); }
                     |  export void f() { g(); }   |

构建命令:

set CL=/EHsc /experimental:module   # Default flags for cl.exe
cl.exe /c c.ixx                     # Produces c.obj,GM.ifc
cl.exe /c b.ixx                     # Depends on GM.ifc,produces b.obj,FM.ifc
cl.exe /c a.cpp                     # Depends on FM.ifc,produces a.obj
link.exe a.obj b.obj c.obj          # Produces a.exe

依赖图:

c.ixx → GM.ifc → b.ixx → FM.ifc → a.cpp
     ↘            ↓             ↙
       c.obj     b.obj    a.obj
            ↘     ↓      ↙
                 a.exe

每个模块都有一个file.ixx及其导出.
该文件将被编译为ModuleName.ifc和file.obj.

如果文件导入模块M,则必须存在M.ifc文件.
默认情况下,cl.exe搜索当前目录中的.ifc文件,但可以指定显式名称或搜索路径:

cl.exe /c a.cpp
-- or --
cl.exe /c a.cpp /module:reference FM.ifc
-- or --
cl.exe /c a.cpp /module:search ./

那么,问题是:如何在CMake中使用模块的VC实现?
没有必要使用MSBuild后端,Ninja也没关系.

解决方法

我认为目前没有人为C模块做过任何构建系统工作.我们(微软)可能会首先支持MSBuild,但CMake肯定是可能的.

总结

以上是脚本之家为你收集整理的如何在CMake中使用VC模块全部内容,希望文章能够帮你解决如何在CMake中使用VC模块所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。

脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ” ,选择关注!
精选程序员所需精品干货内容!

标签: