2012-08-04 120 views
1

我有鋼筋下捆綁一個Erlang的應用程序(目前只有幾個庫模塊)。目錄結構如下所示:神祕行爲殼

MyProject 
- apps 
-- myapp 
--- ebin 
--- src 
--- yada 
- rebar 
- rebar.conf 

MyProject $ ./rebar compile按預期作出響應。

我打開了Erlang的外殼(MyProject的$ ERL-PA應用/ */EBIN MYAPP),並可以執行導出功能就好了。

現在我編輯的源文件,添加一個導出函數,並重新編譯。但是,whaaa ---當我嘗試執行我的新導出函數時,出現錯誤---未定義的函數。我在Erlang shell中執行myAppModule:module_info/0。它沒有列出我剛剛添加到我的源文件中的新功能,也沒有更改我對其他功能所做的更改。

我刪除相關的* .beam文件並重新編譯。仍然無法看到我的變化。

但是,現在我Q()從二郎殼並重新輸入的。你知道什麼!一切正常,包括我的新功能。

爲什麼會這樣?

非常感謝,

LRP

回答

5

你怎麼重新編譯?從殼還是如何?

請注意,如果你重新編譯文件「外」的執行二郎的,那麼你將明確地重新加載的外殼模塊(帶l(myAppModule).)。如果您從shell重新編譯(使用c(myAppModule).),那麼模塊將被重新編譯並重新加載,但.beam文件不會被放入ebin目錄中,但將位於當前工作目錄中。

+0

我從項目目錄編譯:./rebar compile。所以我會給l(myAppModule)方法一個嘗試。 – 2012-08-06 00:34:52

+0

這樣做!非常感謝,羅伯特! – 2012-08-06 01:07:22