2012-11-06 54 views
1

我在同一個src文件夾中有兩個模塊。 MOD1聲明功能我想在模塊MOD2使用:來自其他模塊的功能未檢測到

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

myfunc(A) -> {ok}. 

在其他模塊我不導入MOD1:在Mod2中它承認「MYFUNC」

-module(mod2). 

如果我做「mod1:」,問題是,在運行時,我打電話mod1:myfunc(A)我得到「未定義的函數mod1:myfunc/1」

我不明白爲什麼我得到錯誤,如果intellisense檢測我mod2函數在mod2?

回答

2

從shell中,您可以嘗試使用mod1:module_info(exports)來查看所有導出函數的列表,但如果您的模塊被寫入上面,它應該會生成語法錯誤。

但是,如果我錯了,你其實也有它的模塊中編寫正確(即,它只是一個錯字在這裏),嘗試做在Erlang的外殼下面:

c(mod1). 
c(mod2). 

然後看看它是否適合你。這將爲您編譯和加載模塊。如果你沒有編譯模塊(即它只是目錄中的.erl文件),那就不夠了。

編輯

同時,確保二郎啓動當梁文件被正確加載。這通常是通過啓動erl來完成的erl -pa /path/to/beams

+0

對不起,我已經寫好了,我在這個問題上輸入錯了。這兩個模塊編譯都很好 – Lethi

+0

Roger那。我從我的答案中刪除了對語法錯誤的引用。如果你從你的erlang shell輸入'mod1:module_info(exports)',會發生什麼? – chops

+0

此外,我編輯了我的答案,以包含其他建議以確保您的模塊正確加載。 – chops

相關問題