【发布时间】:2018-09-06 21:45:05
【问题描述】:
我有大量的 Fortran 代码需要在 iOS 设备上运行(在 iOS 应用程序中,我会像 Objective-C -> C -> Fortran 一样与之交谈)。
我能够使用dragonegg 为arm64 编译该Fortran 代码。但是在链接阶段,我从gfortran 库中丢失了很多符号。
我尝试使用 Xcode 逐个文件编译 gfortran 文件,但问题很大。我宁愿至少使用configure 和make 以某种方式让我更接近结果,但似乎--target=arm-apple-darwin 并不真正受支持。
知道如何创建为arm64 构建的libgfortran 吗?也许有人为arm64 预先构建了一些libgfortran?
【问题讨论】:
-
gfortran 有一个选项
-static-libgfortran,其目的是将libgfortran静态嵌入到可执行文件中。你试过了吗?有时需要额外安装才能获得静态库的副本,而不仅仅是动态绑定。 -
仍然需要为 arm64 构建静态库对吗?
-
是的,适当的
libgfortran.a(我不记得静态库文件扩展名是否是.a就像在linux上一样)必须可用。 -
确实 libgfortran.a 已创建,但它适用于 x86_64 架构,并且不会在 arm64 设备上运行:P gfortran 源代码是 fortran 和 c 混合,所以我猜 fortran 需要编译Dragonegg,c 与 clang 然后以某种方式组合,但它远非简单
-
可能并不简单。我想指出
-static-libgfortran标志,但是我对交叉编译的了解是空的。
标签: ios linker fortran arm gfortran