【发布时间】:2014-10-31 13:35:19
【问题描述】:
我在安装 piqic-erlang 时遇到问题。 当我“制作”时,我得到了这个:
bash-3.2$ make
rebar compile
==> piqic-erlang (compile)
==> piqi-erlang (compile)
set -e; \
for i in piqi_rpc.piqi piqi_tools.piqi; do \
../piqic-erlang/piqic-erlang $i; \
done
escript: exception error: undefined function piqic_erlang:main/1
in function escript:run/2 (escript.erl, line 752)
in call from escript:start/1 (escript.erl, line 276)
in call from init:start_it/1
in call from init:start_em/1
make[1]: *** [piqi_rpc_piqi.erl] Error 127
ERROR: Command [compile] failed!
make: *** [all] Error 1
可能是什么问题?
更新: 感谢您的帮助,但“make”之前的“make deps”不起作用。我仍然得到同样的错误。现在我尝试直接从 /piqi-erlang/priv/bin 运行脚本 piqic-erlang,但它又找不到'main'函数:
bash-3.2$ ./piqic-erlang
escript: exception error: undefined function piqic_erlang:main/1
in function erl_eval:local_func/5 (erl_eval.erl, line 544)
in call from escript:interpret/4 (escript.erl, line 781)
in call from escript:start/1 (escript.erl, line 276)
in call from init:start_it/1
in call from init:start_em/1
为什么 escript 看不到 'main' 函数?
【问题讨论】:
-
您可能需要在
make之前运行make deps,至少这对我有用。 -
你使用的是什么版本或者 Erlang 和 rebar?
-
@alavrik,我正在使用 Erlang R17 和 rebar 2.1.0-pre 17 20140906_220756 git 2.1.0-pre-171-gcd55176。注意,我已经安装了 mac OS 10.9.4。
-
@pulitta 抱歉耽搁了。我看到了 Ahmad 的回答,但无法用最新的
rebar重现它。这真的很奇怪。您可以在piqi-erlang/piqic-erlang中运行此命令以查看filelib:fold_files/5是否确实跳过了符号链接?谢谢。filelib:fold_files(_Dir = "src", _Regex = "^[^._]" ".*\\.erl\$", _Recursive = true, fun(F, Acc) -> [F | Acc] end, []).
标签: erlang