“**异常错误:未定义功能添加:addfunc在二郎山/ 0”(“** exception erro

2019-10-20 06:04发布

我试图执行两数相加的简单的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.

Answer 1:

此消息告诉你模块add没有导出函数addfunc/0 。 确保你想叫也正是这个名字,不指望任何参数的功能,导出,模块编译时,搜索路径包括编译束文件,并且有不使用模块冲突code:clash()

更新

目前尚不清楚如何erlide(日食二郎插件你似乎使用)编译和运行程序。 尝试使用来源或erlc ERL壳内进行编译。 这样,你将有更容易控制的环境中,你会更好地了解发生了什么事情。



Answer 2:

我得到确切 - 对于尾部同样的问题递归下面斐波纳契功能 - :

-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

和它的工作!



Answer 3:

我想你还没有编译的代码和您要运行的程序。

在蚀,使用“运行”图标,触发运行; 这将让你在控制台窗口中的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是一个字节码文件

现在,你应该能够没有任何错误运行程序



Answer 4:

你如何尝试执行你的代码?

在编辑器中,右键单击,选择“运行” - >“二郎应用”。 时启动的VM将有你的项目自动加载和编辑/保存文件,将得到重新加载。 启动时,控制台会出现,你可以从那里调用你的代码。

如果仍然不能正常工作,有什么消息你得到m(add).



文章来源: “** exception error: undefined function add:addfunc/0 in Erlang ”
标签: erlang erlide