是否跨平臺發佈,以便我可以在一個平臺上構建發佈,並在另一個平臺上運行它,還是應該在我將運行該應用程序的同一平臺上構建?在Mac上製作Erlang應用程序版本以在Linux上運行它?
3
A
回答
0
假設那些平臺具有相同的OTP版本:是的.beam
文件應該跨平臺兼容,因爲它是解釋字節碼的Erlang VM。就像.class
文件和JVM一樣。
對於不同版本的平臺,它向後兼容2個主要版本。意思是如果你在R16B的OS X機器上發佈版本,它應該與任何運行OTP 17和18的機器兼容。Source
這兩種情況都不適用於編譯的本機代碼或NIF。
2
發佈機制至少需要額外的工作來進行,以使其跨平臺
雖然二郎beams
是跨平臺,版本通常包含額外的數據,可以是依賴於平臺。
這是
- 厄茨本身。
- 平臺依賴庫
如果你想在蘋果建立的Linux發行版,你至少需要厄茨建立的Linux版本。如果你正在使用relx
,例如,你必須specify它與
{include_erts, "/path/to/erlang"},
{system_libs, "/path/to/erlang"},
其他平臺相關的庫是一個不同的故事。幾乎每個複雜的Erlang應用程序都使用一些NIF或端口,這些NIF或端口通常會隨發行版一起提供,並且位於priv
s之內。如果你使用任何,你必須爲你的目標平臺交叉編譯它們。你必須自己處理它可能
相關問題
- 1. NoClassDefFoundError在Linux上運行應用程序(但不是在Mac上)
- 2. 如何在Mac上製作應用程序自動運行?
- 3. 強制通用應用程序在iPad上運行iPhone版本
- 4. 在舊版本的操作系統上運行應用程序
- 5. 在Mac或Windows上運行.NET Core控制檯應用程序
- 6. 在windows上運行android應用程序,在linux上開發
- 7. 如何在Mac上的Redis上運行Python應用程序?
- 8. 在舊版本的.net上運行應用程序
- 9. 在不同版本的iPad上運行應用程序
- 10. 在Mountain Lion上運行iOS 4.3版本的應用程序
- 11. 無法在Mac上運行二進制文件,在Linux上運行
- 12. Erlang:在[本地]版本上使用run_erl?
- 13. 在Mac OS X上顯示正在運行的應用程序
- 14. 在較新版本的Ruby上運行舊的Ruby版本化應用程序
- 15. 在Dreamweaver上更改MAC結束的MAC(以便文件在Linux上運行)
- 16. 程序掛在Linux和Windows上,似乎在Mac上工作
- 17. 在Mac上多次運行Java程序
- 18. 無法在mac上運行java程序
- 19. 在Mac上運行C#(windows)程序
- 20. Java EE應用程序是否可以在Java Micro版本上運行?
- 21. 版本5.0.1的ios應用程序構建可以在ios 5.1上運行嗎?
- 22. 是否可以在本地運行同時在不同節點版本上運行的多個應用程序?
- 23. 在Windows和Linux上運行C++程序
- 24. 編譯C++程序在Linux上運行
- 25. 在Linux上爲C程序製作makefile
- 26. 未在其他mac上運行的應用程序文件
- 27. 未在Mac上運行的Android應用程序
- 28. 在Mac上運行Scala Spark應用程序
- 29. 無法在mac上正常運行java應用程序
- 30. C#-SQL Server應用程序在Mac上運行?