est-il un moyen de compiler Erlang pour être un exécutable autonome? cela signifie, pour l'exécuter comme un exe sans le runtime Erlang.Erlang compilation - Erlang comme exécutable autonome
Répondre
Bien qu'il soit possible de tout emballer dans un seul fichier EXE, vous n'allez pas vous passer d'une exécution Erlang. Les langages dynamiques comme Erlang ne peuvent pas vraiment être compilés en code x86 natif, par exemple, en raison de leur nature. Il doit y avoir un interprète quelque part.
Il est possible de trouver un schéma qui regroupe l'interpréteur et tous les fichiers BEAM en un seul fichier EXE que vous pouvez double-cliquer et exécuter directement, mais c'est probablement plus de travail que vous ne le souhaitiez. Je l'ai déjà vu faire auparavant, mais il y a rarement une bonne raison de le faire, donc je ne vais pas me donner la peine d'entrer dans les détails sur les techniques ici. Au lieu de cela, je suggère que vous utilisiez la même technique que celle utilisée pour les programmes py2exe et py2app de Python pour créer des exécutables Windows et Mac OS X, respectivement. Ces programmes chargent le module principal du programme dans un interpréteur Python, déterminent les autres modules dont il a besoin en utilisant les mécanismes de réflexion intégrés au langage, puis écrivent tous ces modules compilés avec une copie de l'interpréteur et un petit programme wrapper lance le module principal du programme avec l'interprète. Le répertoire contenant ces fichiers est alors un environnement autonome, ayant tout le nécessaire pour exécuter le programme. La seule différence dans le cas Erlang est que python.exe devient erl.exe, et * .pyc devient * .beam. L'idée de base est toujours la même.
Vous pouvez simplifier ceci si vous n'en avez pas besoin pour travailler avec n'importe quel programme Erlang arbitraire, mais seulement le vôtre. Dans ce cas, il vous suffit de copier l'interpréteur Erlang et tous les fichiers .beam qui composent votre programme dans un seul répertoire. Vous pouvez faire cette partie du Makefile de votre programme, par exemple. Vous pouvez ensuite utiliser votre méthode de création setup.exe ou MSI préférée pour créer un package distribuable qui installe cette collection de fichiers dans c:\Program Files\MyProgram
sur le système de l'utilisateur final et crée un raccourci pour "erl mainmodule.beam" dans leur menu Démarrer . L'utilisateur final ne se soucie pas que dans le cadre du programme, ils obtiennent également une copie d'Erlang. C'est un détail d'implémentation.
Je viens de faire un petit coup de hache à ce sujet, et il semble que vous pouvez obtenir le temps d'exécution Erlang à moins de 2 Mo. Tout ce dont vous avez besoin est un sous-ensemble des fichiers dans le répertoire erts-VERSION/bin sous le répertoire dans lequel vous avez installé Erlang. J'ai quelque chose qui semble fonctionner en utilisant uniquement beam.smp.dll, epmd.exe, erl.exe, erl. ini, erlexec.dll, erlsrv.exe et heart.exe. Certains d'entre eux semblent optionnels. Je ne suis pas sûr comment casher est d'expédier seulement beam.smp.dll et non beam.dll, ou vice versa; vous pourriez vraiment avoir besoin des deux. Cela vous prend jusqu'à 3 Mo non compressé. Minuscule, ces jours-ci. –
Est-ce que Riak n'est pas une application? – CMCDragonkai
- 1. Compilation d'un exécutable statique autonome
- 2. Erlang Quiz
- 3. Erlang - Makefiles
- 4. Erlang portable
- 5. simple Erlang
- 6. Erlang Multicast
- 7. Erlang - contrôle
- 8. Erlang emakefile expliquer
- 9. Erlang système de type
- 10. Erlang compilation: mélange de "code objet HiPE" et "opcode"?
- 11. Erlang emacs mode - setting outdir
- 12. Erlang: Hooks vs gen_event
- 13. ERLANG - Pattern Matching
- 14. 'zip' dans Erlang
- 15. Erreur d'exception dans Erlang
- 16. cryptage sha256 en erlang
- 17. Comment désinfecter l'entrée Erlang?
- 18. Erlang problème de coque
- 19. Erlang - analyse de code
- 20. Erlang et websockets
- 21. sémaphores Erlang (mutex)
- 22. Erlang newbie question
- 23. Erlang un-zip-flatten
- 24. ERLANG - Applications de temporisation
- 25. Erlang, membase et comète
- 26. Erlang et les processus
- 27. Priorité des nœuds Erlang
- 28. ERLANG - WX NOTEBOOK TAILLE
- 29. Ruby dans Erlang
- 30. erreur du compilateur Erlang
le site qui est lié à ne supporte pas encore les exs – Zubair
@qwerty. Avez-vous trouvé une réponse qui fonctionne à la fin? – Zubair