已经安装了Erlang:
$dpkg -l|grep erlang
ii erlang 1:13.b.3-dfsg-2ubuntu2 Concurrent, real-time, distributed function
ii erlang-appmon 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP application monitor
ii erlang-asn1 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP modules for ASN.1 support
ii erlang-base 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP virtual machine and base applica
ii erlang-common-test 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP application for automated testin
ii erlang-debugger 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP application for debugging and te
ii erlang-dev 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP development libraries and header
[... many more]
Erlang似乎有效:
$ erl
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
1>
我从github下载了lfe并检查了0.5.2:
git clone http://github.com/rvirding/lfe.git
cd lfe
git checkout -b local0.5.2 e207eb2cad
$ configure
configure: command not found
$ make
mkdir -p ebin
erlc -I include -o ebin -W0 -Ddebug +debug_info src/*.erl
#erl -I -pa ebin -noshell -eval -noshell -run edoc file src/leex.erl -run init stop
#erl -I -pa ebin -noshell -eval -noshell -run edoc_run application "'Leex'" '"."' '[no_packages]'
#mv src/*.html doc/
一定是我错过的蠢事:o
$ sudo make install
make: *** No rule to make target `install'. Stop.
$ erl -noshell -noinput -s lfe_boot start
{"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 ()
是否有一个示例我将如何创建一个hello world源文件并编译并运行它?
答案 0 :(得分:7)
不,你错过了什么。 LFE中的Makefile是“不完美”,应该被忽略,它将在下一个版本中得到改进。为了补偿已编译的所有必需文件,.beam文件位于ebin
目录中。由于它不是OTP的一部分,我认为它不应该安装在那里。
处理此问题以创建私有erlang库目录并将环境变量ERL_LIBS指向它的最简单方法。然后将整个LFE目录放在那里。当erlang启动时,代码服务器会自动将lfe/ebin
目录添加到路径中,然后会自动找到并加载.beam文件。这适用于包含ebin目录的任何包。这也适用于Windows。所以:
~/erlang/lib
export ERL_LIBS=~/erlang/lib
当您启动erlang时,您将在代码路径(/Users/rv/erlang/lib/lfe/ebin
)中看到code:get_path()
(或您拥有它的任何地方)。然后,您还可以使用
erl -noshell -noinput -s lfe_boot start
将来会有lfe
和lfe.bat
这样做。
与erlang一样,任何文本编辑器都可以编辑LFE。对于emacs,有一种LFE模式,它仍然相当基本但有效。您还无法在窗口中运行LFE。不久。包含此内容的最佳方法是将以下内容放在.emacs文件中:
;; LFE mode.
(setq load-path (cons "/Users/rv/erlang/lib/lfe/emacs" load-path))
(require 'lfe-start)
lfe/examples
中有一些示例文件,都应该有效。在lfe/test/visual
中,有一堆我的测试文件已作为示例文件包含在内。要从普通的erlang shell编译LFE文件,请执行
lfe_comp:file("foo").
l(foo). %No autloload here, do this to ensure loading
从LFE shell开始:
(c '"foo") ;This will autoload
lfe/docs
中有大量文档非常准确但user_guide.txt
需要扩展。
http://groups.google.se/group/lisp-flavoured-erlang
包含一些有趣的讨论,人们在github LFE wiki中写了很多。
我认为这就是它。如果您有更多问题,请与我联系。