我试图执行两数相加的简单的Erlang程序。 我试图做到这一点在Eclipse在Ubuntu 10.04 LTS。
当我执行这个程序,我得到的错误如下图所示:
** exception error: undefined function add:addfunc/0
我如何去解决这个问题? 提前致谢。
当用Erlang shell中执行该程序工作正常。 但是,当涉及到eclipse它给我这个错误。 不是这个,任何与此有关的程序给我类似的错误。 我想我会错过一些关于Eclipse配置。
编辑:
不管怎么说,这是样品添加程序,
-module(add).
-export([addfunc/0]).
addfunc() ->
5 + 6.
此消息告诉你模块add
没有导出函数addfunc/0
。 确保你想叫也正是这个名字,不指望任何参数的功能,导出,模块编译时,搜索路径包括编译束文件,并且有不使用模块冲突code:clash()
更新
目前尚不清楚如何erlide(日食二郎插件你似乎使用)编译和运行程序。 尝试使用来源或erlc ERL壳内进行编译。 这样,你将有更容易控制的环境中,你会更好地了解发生了什么事情。
我得到确切 - 对于尾部同样的问题递归下面斐波纳契功能 - :
-module(math2).
-export([fibonacci/1]).
fibonacci(0) -> 0;
fibonacci(1) -> 1;
fibonacci(M) -> fibonacci(M-1) + fibonacci(M-2).
最后,已经意识到这是一个编译时异常。 然后,打开了一个新的选项卡上的我的壳,并与erlc尝试,而不是ERL。
$ erlc math2.erl
现在,我也能看到创建math2.beam文件。 所谓的斐波那契10:
4> math2:fibonacci(10).
55
和它的工作!
我想你还没有编译的代码和您要运行的程序。
在蚀,使用“运行”图标,触发运行; 这将让你在控制台窗口中的ERL外壳。 有你这样做 -
cd("C:\Learning_ERL\src").
你应该看到输出喜欢 -
(Learning-ERL@DALAKSHM-MNFSM)7> cd("C:\Learning_ERL\src").
c:/Learning_ERL/src
ok
然后编译代码 -
c(add)
你应该看到在ERL这样的壳 -
(Learning-ERL@DALAKSHM-MNFSM)10> c(add).
{ok,add}
现在,你应该看到一个新的名为文件 - add.beam在同一目录作为您的ERL源文件 - add.erl
add.beam是一个字节码文件
现在,你应该能够没有任何错误运行程序
你如何尝试执行你的代码?
在编辑器中,右键单击,选择“运行” - >“二郎应用”。 时启动的VM将有你的项目自动加载和编辑/保存文件,将得到重新加载。 启动时,控制台会出现,你可以从那里调用你的代码。
如果仍然不能正常工作,有什么消息你得到m(add).
?