当我尝试使用
在单独的节点上创建新进程时Pid = spawn(mynode, mymodule, myfunction, [self()])
(导出myfunction/1
),我收到此错误:
Error in process <0.10.0> on node 'no@de1' with exit value:
{undef,[{mymodule, myfunction, [<33.64.0>], []}]}
我尝试设置-compile(export_all)
标志,但假设错误日志中有额外的大括号,则情况并非如此。
我不知道导致错误的原因,我不知道该怎么做。
答案 0 :(得分:3)
你得到的错误是“没有模块'mymodule'和/或没有函数'mymodule:myfunction / 1'”。
这意味着mymodule未加载到单独节点的代码服务器中
要加载mymodule的代码,您需要this snippet或this function
答案 1 :(得分:2)
您是否检查过模块mymodule
是否在路径no @ de1?
当您使用spawn(mynode,mymodule,myfunction,[self()])进行进程时,VM需要在执行之前加载代码。
如果你以这种方式spawn(Node, Fun)
使用高阶函数(一个有趣的),那么在路径中使用代码并不是更必要(但要注意函数定义中对函数的任何调用都需要要在远程节点上解决)
答案 2 :(得分:0)
转到no @ de1并运行m(mymodule).
它应该说明模块是否可加载以及哪些函数确实导出。
还:检查其他节点是否可访问。在它上面做net_adm:ping
。