I two modules in same src folder. mod1 declares function I wish to use in module mod2:
-module(mod1).
-export([myfunc/1]).
myfunc(A) -> {ok}.
In other module I not import mod1:
-module(mod2).
If I do “mod1:” in mod2 it recognizes “myfunc”, problem is at run-time when I call mod1:myfunc(A) I get “undefined function mod1:myfunc/1”
I not understand why I get error if intellisense detect my mod1 function in mod2?
From the shell, you could try doing
mod1:module_info(exports)to see the list of all the exported functions, though if your module is written as it is above, it should be generating a syntax error.If, however, I’m wrong, and you actually do have it written properly in your module, (ie, it’s just a typo here), try doing the following at the erlang shell:
And see if that works for you. This will compile and load the modules for you. If you don’t have the module compiled (ie, it’s just a .erl file in the directory), that’s insufficient.
EDIT
Also, make sure that the beam files are being loaded properly when erlang launches. This is typically done by launching erl with
erl -pa /path/to/beams