简单的分布式Erlang

Mat*_*tyW 2 erlang distributed

我有一个简单的模块:

-module(dist).
-compile([add/3]).
add(From,X,Y) ->
    From ! X+Y.
Run Code Online (Sandbox Code Playgroud)

我正在启动两个节点.

一个用

erl -sname foo 
Run Code Online (Sandbox Code Playgroud)

和另一个

erl -sname bar
Run Code Online (Sandbox Code Playgroud)

在酒吧节点我正在做:

> c(dist).
{ok,dist}
> self().
<0.37.0>
> spawn('foo@unknown-00-23-6c-83-af-bd', dist, add, [self(), 3, 5]).
Run Code Online (Sandbox Code Playgroud)

但我得到的反应是:

Error in process <0.48.0> on node 'foo@unknown-00-23-6c-83-af-bd' with exit value: {undef,[{dist,add,[<8965.37.0>,3,5]}]}
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思?我想知道这是否意味着我的foo节点没有定义这个模块?我不认为它需要它,但问题并没有通过编译foo节点中的dist来解决,所以我猜这不是问题.

dsm*_*ith 7

导出add/3.而不是编译选项.

-export([add/3]).
Run Code Online (Sandbox Code Playgroud)