我在同一个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函数,我不明白为什么会出错?
答案 0 :(得分:2)
从shell中,您可以尝试执行mod1:module_info(exports)
以查看所有导出函数的列表,但如果您的模块是按照上面的方式编写的,则应该生成语法错误。
但是,如果我错了,你确实在你的模块中正确编写了它(也就是说,这只是一个错字),请尝试在erlang shell中执行以下操作:
c(mod1).
c(mod2).
看看这对你有用吗?这将为您编译和加载模块。如果您没有编译模块(即,它只是目录中的.erl文件),那就不够了。
修改强>
此外,确保在erlang启动时正确加载梁文件。这通常通过使用erl -pa /path/to/beams