2011-01-15 11 views
2

Lisp Flavored Erlang(LFE)はWindowsで動作しますか?私はLFE 0.6/Erlang 5.8.2/Windows 7 32ビットを使用しています。私は、バッチファイル(%1%2%3%4での$ @を置き換える)としてLFEのシェルスクリプトをコピーし、それは私にこれを与える:Lisp Flavored Erlang on Windows

 
D:\projects\checkout\lfe>lfe 
{"init terminating in do_boot",{undef,[{lfe_boot,start,[]},{init,start_it,1},{init,start_em,1}]}} 

Crash dump was written to: erl_crash.dump 
init terminating in do_boot() 

答えて

3

ここでの問題は、アーランはLFEのebinを見つけることができないということですディレクトリ。この問題を解決するための2つの方法があります。LFEを開始するときに

  • lfe.batスクリプトでとき、またはあなたがそれを呼び出すのいずれか、明示的な-pa <lfe ebin dir>引数を使用します。シンプルだがハードな配線。

  • ERL_LIBS環境変数を使用してください。これは、codeモジュールのマニュアルhttp://erlang.org/doc/man/code.htmlに記載されています。余分なErlangライブラリディレクトリ、例えばc:\projects\erlangを作成する場合は、Erlangアプリケーションディレクトリ構造に続くErlangアプリケーションをLFEのようにドロップし、ERL_LIBSを指すと、コードサーバーはコードパスにあるebinディレクトリを自動的に追加します。

これは、How do I install LFE on Ubuntu Karmic?でも説明されていますが、UNIXコンテキストでは説明されています。

ERL_LIBSの機能は間違いなく宣伝する必要があります。

編集: @Shantanu Kumarさんのコメントに返信します。

私はWindowsマシンにアクセスできないため、正しくテストできません。問題は、lfe_bootを使用すると、少なくともerl.exeを実行していないときは、Windowsで動作しないポートプログラムttyslを起動しようとしているようです。いくつかのソリューションを試してみてください:

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

  • werl.exe -pa ebinと通常の方法でアーランを開始してみてください(右荷重経路を取得する)と、手動lfe_shell:server().

  • とLFEシェルを起動はwerl.exe -pa ebin -noshell -s lfe_shell startとアーランを開始してみてください。これによりシェルとしてlfe_shellが実行されますが、^Gは利用できません。それはそれを使用するいいですしながら、

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

これが役に立ちます。

+0

私が示唆したように行なったし、これを得た: C:\ TEMP \ LFE> ERL -pa ebin -noshell -noinput -s lfe_boot =エラーレポート==== 18-JAN-2011 :: 00を起動します。 22382 === プロセス内のエラー<0.28.0>終了値:{badarg、[{erlang、register、[user、<0.29.0>]}、{user、start_port、1}] –

+0

2番目のオプション( "werl.exe - pa bin "の後ろに" lfe_shell:server() "が続きます)。また、erl.exeも正常に動作します。しかし、werl.exeまたはerl.exeで "-noinput"または "-noshell"または "-s lfe_shell start"を指定すると、エラーが発生します。 –

0

謝罪します。私はこの投稿が基本的に死んでいることは知っていますが、私はその話題に関する他の投稿を見つけることはできません。

私は、動作する方法論を見つけたと信じています。とてもシンプルです:MSYS2とMingw-w64を使ってLFEをビルドし、./bin/lfe経由でビルドディレクトリから実行してください。

ビンテージ/ lfeの最後の行に "erl"ではなく "werl"を呼び出す必要があるようです。正直なところ私はこれがなぜであるかわからない。私はErlangと耳の後ろには緑色すぎて、理由を言うことはできません。

また、私は私の個人的なブログでもう少し詳細にこのことを文書化してきました:http://www.vultaire.net/blog/2016/05/02/installing-lisp-flavored-erlang-on-windows/

が、これは、誰かを役に立てば幸い!