Emacs 23.2已经通过在越狱的iOS设备上使用cydia为iOS编译 - source
如何仅使用mac作为构建主机,将静态链接的64位,最小的非gui emacs交叉编译到iOS?优选地,通过使用Emacs自己的配置& make(可能需要补丁)。
让我们忽略代码签名和在非越狱iOS设备上运行此cli二进制文件的问题(我知道如何解决这两个问题)。
答案 0 :(得分:4)
Emacs并不真正支持交叉编译,不是。一些人已经完成了交叉编译,但它需要相当多的摆弄,并且没有人为Emacs提供补丁以简化工作: - (
出现的问题如下:
.elc
文件),因此在交叉编译之前,您需要先构建一个“主机Emacs”来编译这些文件一个“目标Emacs”。从正式版本tarball构建时,这些文件应该已经构建并包含在tarball中,所以希望不会出现这个问题。temacs
可执行文件,然后执行该文件以加载一堆“预加载”的Elisp文件,之后进程的内存映像为用于生成新的可执行二进制文件(实际的emacs
)。这称为“转储”。这样做是为了启动Emacs更快,因为它不需要去加载所有这些Elisp文件。您实际上可以使用temacs
而不是emacs
,它应该最常用。甚至还有一个名为CANNOT_DUMP
的CPP标志,您可以使用它来调整某些内容,以便temacs
可能会更好一些。这将使启动新的Emacs进程变得更慢,并且是一种基本上从未测试过的模式,所以期待怪癖和问题。
您可以通过首先交叉构建temacs
,然后在目标主机上运行它来解决该问题。当然。但请注意,这种“倾销”操作需要100%不可移植的黑客,需要针对每个操作系统进行调整,因此现有的转储代码很可能不适用于iOS(即会生成一个会崩溃和烧毁的二进制文件)从一开始就是。)
你说“Emacs 23.2已经为iOS编译”让人觉得有些问题已经解决了旧的Emacs版本,所以也许有希望,我不知道。