【问题标题】:How i compile and run erlang program?我如何编译和运行erlang程序?
【发布时间】:2014-06-22 08:28:54
【问题描述】:

我有

  1. freebsd 10
  2. 文件夹 /usr/home/ec2-user/ezmq 包含来自 https://github.com/zeromq/ezmq 的文件
  3. 已安装 erlang

然后我:

  1. 在命令行运行 - erl
  2. 在错误中

    c("/usr/home/ec2-user/ezmq/examples/hwclient.erl").

    c("/usr/home/ec2-user/ezmq/examples/hwserver.erl").

  3. hwserver:main().

  4. hwclient:main().

有错误

异常错误:未定义函数 ezmq:start/1 在函数 hwserver:main/0 中(/usr/home/ec2-user/ezmq/examples/hwserver.erl,第 14 行)

有错误

异常错误:函数 hwclient:main/0 中未定义的函数 ezmq:start/1(/usr/home/ec2-user/ezmq/examples/hwclient.erl,第 14 行)

我如何编译和运行

这个https://github.com/zeromq/ezmq/blob/master/examples/hwclient.erl + hwserver.erl

例子?

我有错误

** exception exit: {{undef,[{gen_listener_tcp,start_link,
                                              [ezmq_tcp_socket, 
                                               [<0.49.0>,<<>>,5555,
                                                [binary,inet,
                                                 {active,false},
                                                 {send_timeout,5000},
                                                 {backlog,10},
                                                 {nodelay,true},
                                                 {packet,raw},
                                                 {reuseaddr,true}]],
                                               []],
                                              []},
                            {ezmq,handle_call,3,[{file,"src/ezmq.erl"},{line,238}]},
                            {gen_server,handle_msg,5,
                                        [{file,"gen_server.erl"},{line,585}]},
                            {proc_lib,init_p_do_apply,3,
                                      [{file,"proc_lib.erl"},{line,239}]}]},
                    {gen_server,call,[<0.49.0>,{bind,tcp,5555,[]}]}}
     in function  gen_server:call/2 (gen_server.erl, line 180)
     in call from hwserver:main/0 (/usr/home/ec2-user/ezmq/examples/hwserver.erl, line 15)

【问题讨论】:

标签: erlang


【解决方案1】:

这个项目使用钢筋,所以试试这个:

  1. 从这里下载:https://github.com/rebar/rebar/wiki/rebar
  2. 使其可执行
  3. 编译:./rebar compile
  4. 打开两个终端
  5. 在 1 号航站楼,运行:erl -pa ebin -pa /deps/gen_listener_tcp/ebin -pa 选项告诉虚拟机从哪里加载梁文件。

    1. 在 erlang shell 中,运行:

      c("examples/hwserver") hwserver:main().

  6. 在 2 号航站楼,运行:erl -pa ebin -pa /deps/gen_listener_tcp/ebin

    1. 在 erlang shell 中,运行:

      c("examples/hwclient") hwclient:main().

你应该看到一堆输出。

make 文件似乎需要将rebar 放在您的路径中。完成此操作后,您可以尝试 make 目标。

【讨论】:

  • 我做到了。我如何运行 hwclient.erl + hwserver.erl
  • 当你运行erl -pa ebin时,它应该会打开一个shell。您应该能够从该 shell 运行服务器和客户端主电源。
  • 我在 erlang shell hwserver:main() 中运行。并有错误**异常错误:未定义的函数hwserver:main/0
  • 我猜这个例子不是用钢筋编译的。我很快就会更仔细地研究它。
  • 检查更新的答案,我尝试了整个过程,它对我有用。
猜你喜欢
  • 2013-10-17
  • 2011-01-22
  • 1970-01-01
  • 2020-06-28
  • 2013-08-04
  • 2012-12-14
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
相关资源
最近更新 更多