2010-11-16 36 views
2

我有一個簡單的模塊:簡單分佈式二郎

-module(dist). 
-compile([add/3]). 
add(From,X,Y) -> 
    From ! X+Y. 

而且我開始兩個節點。

一個與

erl -sname foo 

,另一個

erl -sname bar 

在酒吧點我做:

> c(dist). 
{ok,dist} 
> self(). 
<0.37.0> 
> spawn('[email protected]', dist, add, [self(), 3, 5]). 

但我得到的效應初探是:

Error in process <0.48.0> on node '[email protected]' with exit value: {undef,[{dist,add,[<8965.37.0>,3,5]}]} 

這個錯誤是什麼意思?我想知道這是否意味着我的foo節點沒有定義這個模塊?我不認爲它需要它,但問題並沒有通過在foo節點中編譯dist來解決,所以我想這不是問題。

+2

嘗試導出添加/ 3 – dsmith 2010-11-16 23:04:57

+0

或者使用-compile(export_all)。 (僅在早期開發期間) – Zed 2010-11-17 06:51:23

+0

看來我仍然需要在兩個節點中編譯dist模塊。這是如何工作的? – MattyW 2010-11-17 07:31:06

回答

7

導出添加/ 3。而不是一個編譯選項。

-export([add/3]). 
0

如果所述第一節點使用NL(模塊),則該模塊的光束將被載入到所有連接的節點