提问人:Troy Hamilton 提问时间:7/28/2023 最后编辑:Troy Hamilton 更新时间:7/28/2023 访问量:104
c++ 模块文件是独立于平台还是跨平台的?
Are c++ module files platform independent / cross platform?
问:
我有一个大的 .cpp 文件,需要几分钟才能编译,我想与朋友分享,他们有一台手臂机器,我有一台 x86 机器。我可以在我的机器上将其作为 c++ 模块并通过电子邮件发送给我的朋友,以便他们可以使用该模块而无需编译大型 .cpp 文件吗?我们都运行相同类型的操作系统,并且使用来自同一供应商的编译器(如果重要的话)。
答:
-2赞
Akash Kumar
7/28/2023
#1
使用模块编写的代码应可跨支持 C++20 标准的不同平台和编译器移植。但是,这里的关键是您和您的朋友正在使用的特定编译器对 C++20 模块的支持。
2赞
Nicol Bolas
7/28/2023
#2
这些都不是由标准指定的,因此对于不同的编译器和平台会有所不同。但通常,模块编译的输出产品是对象文件(库,所以肯定是特定于 CPU 的)和模块文件。后者至少是特定于编译器的(甚至可能对编译器版本敏感),并且很可能是特定于 CPU 或操作系统的(特别是如果您有任何特定于 CPU 的版本)。#ifdef
只需将您的源文件交给他们并让他们自己构建一次模块会更具可移植性。
评论