使用swift编译器来裸机?

我真的很喜欢用swift嵌入式编程,因为我觉得它是一个更好的c ++替代品,我使用的处理器是ARM​​ Cortex-M4F(http://www.ti.com/tool/ek-tm4c123gxl )。 看一下swift编译器页面,它说你可以从swift源生成LLVM IR,然后我希望能用LLVM进行交叉编译。 这可能吗?


它绝对可以用Swift生成机器码。 实际上,默认情况下,当您在Xcode或swiftc命令行编译器中编译Swift程序时,生成的可执行文件由机器代码组成。

LLVM字节码是在构建过程中的某个时间点生成的,但生成的最终可执行文件是机器码。 有一些编译器选项可以让您只生成LLVM bytcode,但如果需要的话,通常不会直接执行LLVM字节码,如Java运行时运行的Java字节码。

至于ARM的交叉编译,我不确定它如何与swiftc工具一起工作,但是如果您构建了一个Xcode iOS项目,它将生成一个ARM可执行文件。 我确信swiftc编译器具有生成ARM可执行文件所需的所有选项。

然而,我能想到的一个问题是,许多Swift的功能取决于Apple的框架。 不过,现在Swift已经开源了,各种各样的东西逐渐会有更多纯粹的快速库。


我正在探索这种可能性(使用Swift嵌入式应用程序)。 由于Swift需要一个运行时,静态编译“Hello,World!”之后 (在Ubuntu上,使用最新的Swift 3.0.2的x86-64)结果二进制大小超过5兆字节,这可能是“小”ARM控制器(如Cortex-M0)的问题。

链接地址: http://www.djcxy.com/p/31271.html

上一篇: Using swift compiler for bare metal?

下一篇: Seaborn bug? Inconsistent in heatmap plotting