4

Lisp Flavoured Erlang(LFE)はWindowsで動作しますか?LFE 0.6 / Erlang 5.8.2 / Windows732ビットを使用しています。lfeシェルスクリプトをバッチファイルとしてコピーし($ @を%1%2%3%4に置き換えます)、次のようになります。

D:\ projects \ checkout \ lfe> lfe
{"initはdo_bootで終了します"、{undef、[{lfe_boot、start、[]}、{init、start_it、1}、{init、start_em、1}]}}

クラッシュダンプは次のように書き込まれました:erl_crash.dump
do_bootで終了するinit()
4

2 に答える 2

3

ここでの問題は、ErlangがLFEebinディレクトリを見つけられないことです。この問題を解決する2つの方法は次のとおりです。

  • スクリプト内またはスクリプトを呼び出すとき-pa <lfe ebin dir>に、LFEを開始するときに明示的な引数を使用します。lfe.batシンプルだがハードワイヤード。

  • ERL_LIBS環境変数を使用します。これについては、codeモジュールのドキュメントhttp://erlang.org/doc/man/code.htmlで説明されています。追加のErlangライブラリディレクトリを作成する場合、たとえばc:\projects\erlang、LFEのようにErlangアプリケーションディレクトリ構造に従うErlangアプリをドロップし、それをポイントERL_LIBSすると、コードサーバーはそこで見つけたebinディレクトリをコードパスに自動的に追加します。

これは、Ubuntu KarmicにLFEをインストールするにはどうすればよいですか?にも説明されています。しかし、UNIXのコンテキストでは。

このERL_LIBS機能は間違いなくより適切に宣伝されるべきです。

編集: @ShantanuKumarのコメントに返信します。

Windowsマシンにアクセスできないため、適切にテストできません。問題は、少なくとも実行中は、Windowsでは動作しないように見えるlfe_bootポートプログラムを使用して起動しようとすることであるようです。試すべきいくつかの解決策:ttyslerl.exe

  • werl.exe代わりに使用してください。これはうまくいくかもしれませんが、とにかくやります。

  • (正しいロードパスを取得するために)通常の方法でErlangをwerl.exe -pa ebin起動し、LFEシェルを手動で起動してみてくださいlfe_shell:server().

  • でErlangを起動してみてくださいwerl.exe -pa ebin -noshell -s lfe_shell start。これはシェルlfe_shellとして実行されますが、使用できません。^G

また、LFEを実行するためにLFEシェルを使用する必要はありませんが、通常のErlangシェルを使用して、「通常の」方法でLFE関数を呼び出すことができます。2つのio形式で少し統合失調症になるかもしれませんが、問題はありません。:-)

お役に立てれば。

于 2011-01-16T00:31:39.687 に答える
1

謝罪いたします; この投稿が基本的に死んでいることは知っていますが、このトピックに関する他の投稿が見つからないため、ここに返信するのが適切だと思われます.

うまくいく方法論を見つけたと思います。非常に単純です。MSYS2 と Mingw-w64 を使用して LFE をビルドし、ビルド ディレクトリから ./bin/lfe 経由で実行するだけです。

必要な微調整が 1 つあります。bin/lfe の最後の行は、"erl" ではなく "werl" を呼び出すように調整する必要があるようです。正直なところ、これがなぜなのかわかりません。Erlang については、理由を説明するにはあまりにも青臭いです。

これについては、私の個人的なブログでもう少し詳しく説明しています: http://www.vultaire.net/blog/2016/05/02/installing-lisp-flavored-erlang-on-windows/

これが誰かを助けることを願っています!

于 2016-05-02T07:42:48.017 に答える