[英]How to cross compile Emacs for iOS
Emacs 23.2已在越獄的iOS設備上使用cydia為iOS進行了編譯- 源碼
我將如何僅使用Mac作為構建主機將靜態鏈接的64位,最小化,非GUI Emacs交叉編譯到iOS? 最好使用Emacs自己的configure&make(可能需要一個補丁)。
讓我們忽略代碼簽名和在非越獄的iOS設備上運行此cli二進制文件的問題(我知道如何解決這兩個問題)。
Emacs並不真正支持交叉編譯。 少數人已經完成了交叉編譯,但是需要相當多的擺弄,而且沒有人為Emacs提供補丁來簡化工作:-(
出現的問題如下:
.elc
文件),因此您需要先構建“主機Emacs”來編譯這些文件,然后再交叉編譯“目標Emacs”。 從正式發行版的tarball進行構建時,這些文件應該已經構建並包含在tarball中,因此希望該問題不會出現。 temacs
可執行文件,然后執行該可執行文件以加載一堆“預加載”的Elisp文件,然后使用該進程的內存映像生成新的可執行二進制文件(實際的emacs
)。 這稱為“轉儲”。 這樣做是為了啟動Emacs更快,因為它不需要去加載所有這些Elisp文件。 實際上,您可以使用temacs
而不是emacs
,它應該可以正常工作。 甚至還有一個名為CANNOT_DUMP
的CPP標志,您可以使用它來進行一些調整,以使temacs
工作原理更好一些。 這將使啟動新的Emacs進程的速度變慢,並且該模式基本上從未經過測試,因此請期待一些古怪和問題。
您可以通過先交叉構建temacs
,然后在目標主機上運行它來解決該問題。 當然。 但是請注意,此“轉儲”操作需要針對每個OS進行100%的不可移植的修改,因此,現有的轉儲代碼很可能不適用於iOS(即,將生成一個二進制文件,該二進制文件將在開始)。
您說過“ Emacs 23.2已為iOS編譯”,這聽起來像是較舊的Emacs版本已解決了其中一些問題,所以也許我沒有希望。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.