来自其他模块的功能未检测到

时间:2012-11-06 22:41:14

标签: erlang intellisense

我在同一个src文件夹中的两个模块。 mod1声明我希望在模块mod2中使用的函数:

-module(mod1).
-export([myfunc/1]).

myfunc(A) -> {ok}.

在其他模块中,我不导入mod1:

-module(mod2).

如果我在mod2中执行“mod1:”它识别“myfunc”,问题是在运行时我调用mod1:myfunc(A)我得到“未定义函数mod1:myfunc / 1”

如果intellisense在mod2中检测到我的mod1函数,我不明白为什么会出错?

1 个答案:

答案 0 :(得分:2)

从shell中,您可以尝试执行mod1:module_info(exports)以查看所有导出函数的列表,但如果您的模块是按照上面的方式编写的,则应该生成语法错误。

但是,如果我错了,你确实在你的模块中正确编写了它(也就是说,这只是一个错字),请尝试在erlang shell中执行以下操作:

c(mod1).
c(mod2).

看看这对你有用吗?这将为您编译和加载模块。如果您没有编译模块(即,它只是目录中的.erl文件),那就不够了。

修改

此外,确保在erlang启动时正确加载梁文件。这通常通过使用erl -pa /path/to/beams

启动erl来完成