有沒有辦法將Erlang編譯爲獨立的可執行文件? 這意味着,要在沒有Erlang運行時的情況下將其作爲exe運行。Erlang編譯 - Erlang獨立執行
回答
儘管可以將所有東西都包裝在一個EXE中,但您不會擺脫Erlang運行時。像Erlang這樣的動態語言不能真正編譯爲本機x86代碼,例如,由於它們的性質。在那裏必須有一名翻譯。
可以想出一個方案,將解釋器和所有BEAM文件捆綁到一個可以雙擊並直接運行的EXE中,但這可能比您想要的更多。我以前看過它,但很少有很好的理由去做,所以我不打算詳細介紹這裏的技術。
相反,我建議您使用它們分別用於Python的py2exe和py2app程序的相同技術來創建Windows和Mac OS X可執行文件。這些程序將程序的主要模塊加載到Python解釋器中,使用語言的內置反射機制找出它需要的其他模塊,然後寫出所有這些已編譯的模塊以及語言解釋器的副本和一個小封裝程序與口譯員一起啓動了程序的主要模塊。包含這些文件的目錄是一個獨立的環境,擁有運行該程序所需的一切。 Erlang的唯一區別是python.exe變成了erl.exe,而* .pyc變成了* .beam。基本的想法仍然是一樣的。
如果你不需要它來處理任何Erlang程序,但只有你自己,你可以簡化它。在這種情況下,您只需將構成程序的Erlang解釋器和所有.beam文件複製到一個目錄中即可。例如,你可以使你的程序的Makefile的這一部分。
然後,您可以使用自己喜歡的SETUP.EXE或MSI創建方法,用於創建一個分發包,安裝這個集合文件到c:\Program Files\MyProgram
最終用戶的系統上,並在其開始菜單創建「ERL mainmodule.beam」的快捷方式。最終用戶不關心作爲程序的一部分,他們也得到一份Erlang的副本。這是一個實現細節。
我只是對此做了一個簡單的攻擊,看起來你可以將Erlang運行時降低到2 MB以下。您需要的僅僅是安裝Erlang的目錄下erts-VERSION/bin目錄中的文件的子集。我看到只能使用beam.smp.dll,epmd.exe,erl.exe,erl的東西。 ini,erlexec.dll,erlsrv.exe和heart.exe。其中一些似乎是可選的。我不知道它是如何猶太教只發運beam.smp.dll而不是beam.dll,反之亦然;你可能真的需要兩個。這會使您最多解壓縮3 MB。小,這些天。 – 2009-11-25 16:58:07
Riak不會作爲應用程序捆綁嗎? – CMCDragonkai 2014-08-03 23:42:33
- 1. 在Intellij中編譯Erlang
- 2. Erlang編譯器UTF32支持
- 3. Erlang gproc編譯失敗
- 4. 無法編譯erlang r14b03
- 5. Erlang OTP版本使用HiPE編譯?
- 6. erlang-如何編譯和代碼
- 7. Erlang erlIDE:支持哪些編譯選項?
- 8. 如何使用emacs編譯erlang項目
- 9. 在Windows上編譯Erlang代碼
- 10. Erlang和C庫。並行執行
- 11. 加快Erlang編輯,編譯,運行/調試周期
- 12. 獨立執行
- 13. Erlang翻譯:Vi模式
- 14. 如何在使用erlang編譯erlang時節省鍵盤操作時間?
- 15. 函數列表及其執行Erlang
- 16. 如何在java中執行actor(erlang)?
- 17. Erlang Parse_trans表單翻譯爲Erlang源代碼
- 18. 將lua腳本編譯爲獨立的可執行文件
- 19. 將PHP編譯爲獨立可執行文件(更快?)
- 20. 並行Erlang代碼
- 21. 設置Emacs進行編程Erlang
- 22. 模板和獨立編譯
- 23. 獨立Java編譯器?
- 24. erlang分佈式編程
- 25. 將Erlang Tuple編碼爲JSON
- 26. 如何安裝esl-erlang,erlang-crypto和erlang-tools?
- 27. Erlang的
- 28. Erlang - Makefiles
- 29. gen_fsm的獨特原子:Erlang的start/3
- 30. Erlang上的Erlang算術運算:select result
鏈接到的站點不支持exes – Zubair 2010-04-05 17:52:46
@qwerty。你找到了最終有效的答案嗎? – Zubair 2010-04-05 17:54:02