在MIPS上免费使用Pascal for Android

Sev*_*yev 6 android freepascal cross-compiling fpc android-ndk

试图将Delphi库移植到Android.免费Pascal支持Android/ARM - 可以使用Windows的预构建编译器.但是,Android NDK现在也支持MIPS和x86.FPC支持者的状态如何?目前,我的项目或多或少与CPU无关 - 本机位是为所有四种支持的体系结构构建的.不想放手.

我不是在Pascal的完整Android开发周期之后 - 只是一个没有I/O的算法库.我尝试用p2c将其翻译成C语言,但译者对来源进行了扼流.

我是否应该尝试使用Linux为相关CPU构建交叉编译器,然后链接到NDK库?

编辑:我已经从Android分支的源代码构建了针对Intel/Linux的交叉编译器.它工作,除了你必须调用ppcross386编译,而不是fpc.看起来,后者忽略-Tlinux选项并调用Intel/Win32编译器.

EDIT2:对makefile和源进行少量更改,MIPS交叉编译器构建.但是,随着构建转移到跨CPU RTL,它几乎立即出错.

Sev*_*yev 3

编辑,最后:FPC 主干中提供了对 Android/MIPSEL 编译目标的支持。导出最新版本,构建交叉编译器,然后编写代码。


虽然可以在 FP 源代码中找到对 MIPS ISA 的支持,但尚未正式完成。等待2.7版本。

同时,主干中支持编译为 Java 字节码,FP wiki 中对此进行了记录。也许我可以利用它作为权宜之计......

编辑:基于 JVM 的 Free Pascal 通常可以在 Android 上运行,但其规则与常规 Pascal有所不同。否则,当编译到 JVM 时,正确的 Pascal 就会失败。因此,它不适合移植大量的遗留 Pascal 代码,而这些代码一开始就没有考虑到 JVM。

编辑:我的 FPC 项目在 MIPS/Android 上运行,但我的配方不适合一般消费,因为 Pascal RTL 在我的项目中使用的范围非常有限。它涉及从 Pascal 到 MIPS 程序集的交叉编译(针对 MIPSEL/Linux,可在 FPC 主干中使用),然后将生成的程序集源提供给 NDK 构建系统,提供 Pascal RTL 有限子集的 C/程序集重新实现。

Pascal RTL的整个身体又大又吓人。我的解决方案涉及从头开始用 C 语言重新实现 Pascal RTL,这与普遍适用的解决方案相反。