我如何编译和运行erlang程序?

时间:2014-05-05 22:00:17

标签: erlang

我有

  1. freebsd 10
  2. 文件夹 / usr / home / ec2-user / ezmq 包含 https://github.com/zeromq/ezmq
  3. 中的文件
  4. 安装了erlang
  5. 然后我:

    1. 在命令行中运行 - erl
    2. 在erl中
    3. C(" /usr/home/ec2-user/ezmq/examples/hwclient.erl")。

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

    4. hwserver:main()的

    5. hwclient:main()的
    6. 并有错误

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

      并有错误

      异常错误:未定义函数ezmq:函数hwclient中的start / 1:main / 0(/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)
      

1 个答案:

答案 0 :(得分:3)

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

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

    1. 在erlang shell中,运行:

      -pa

  6. 在终端2中,运行:c("examples/hwserver") hwserver:main().

    1. 在erlang shell中,运行:

      erl -pa ebin -pa /deps/gen_listener_tcp/ebin

  7. 你应该看到一堆输出。

    make文件似乎需要在您的路径中放置c("examples/hwclient") hwclient:main().。完成后,您可以尝试制作目标。