erlang編譯
『壹』 erlang語言,gen_server.erl編譯時出現錯誤。求大神指導
第一個錯誤原因是你調用gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).時宏?SERVER沒有定義,應該是書上的例子沒有把打完全吧。
解決這個問題在代碼start_link()上一行前邊加上
-define(SERVER, ?MODULE).
這個時加入宏?SERVER的定義,讓?SERVER 指向當前模塊。
第二個錯誤提示函數沒有定義,這種情況一般是符號錯誤,檢查每個函數最後的句號和函數開頭的->
你自己找一找吧
『貳』 erlang 用什麼編輯器好
EMACS, VIM, ERLIDE(基於Eclipse)
推薦EMACS,不過本人還是習慣用VIM加erlang語法高亮。
如果習慣Eclipse地話,那麼就用ERLIDE吧,還不錯。
『叄』 今天看到一個叫erlang的編程語言,很好奇它的應用范圍,求解答
分布式語言,在我看來主要就是非常方便的實現了雲計算框架,我們可以在這個框架上面編寫需要大量計算的代碼. 如:聯機編譯,vc的IncrediBuild是一個類似概念的產品,我們在10台電腦在那裡安裝了IncrediBuild之後,當我們要編譯有1000千個cpp文件的工程,IncrediBuild會提取10個CPP文件交給這10台機器進行編譯,有一台編譯完了,繼續分一個新的cpp文件給它,所有的編譯完了在請求編譯的機器上面進行鏈接,生成exe.它將編譯的時間大大的縮短了.
『肆』 如何調試Erlang程序
在erlang環境搭建好之後,它會默認自帶一個調試的工具---erlang debugger(這個名字起得很好(^_^)).
Erlang debugger的簡單使用:
假設我們有一個寫好的test.erl.
1.編譯模塊。編譯模塊的時候,應該這樣編譯
c(test,[debug_info]).
2.打開debugger。在erlang shell中輸入"im()."即可。
3.設置斷點。在打開的monitor中,把左下方的Auto Attach下的三個選項全部選上,即First Call, On Break, On Exit(這個細節是很重要的)。然後選擇Mole->Interpret Moles,在打開的窗口中,選擇test.erl源文件。這時,在剛才的Monitor窗口中,雙擊左上腳的test,在打開的"View Mole test"新窗口中,選擇Break->Function Break,選擇一個自己的函數(當然,在Break當中,可以選擇其他的方式進行斷點的設置)。至此,斷點設置成功。
4.開始調試。在erlang shell當中輸入要調用的函數(就像平時我們沒有調試的時候,直接輸入模塊調用那樣。eg: test:reverse([1, 2, 3, 4]). 這個是我隨便輸的)。然後大家在打開的窗口當中就可以調試自己的程序了。
『伍』 intellij idea 怎麼編譯erlang
Intellij IDEA本身就支持此功能。把滑鼠放到紅色代碼上,按下alt+enter
會給出智能修正提示,一般第一項就是case to 強制轉換。直接回車就可以了。
『陸』 erlang 反編譯工具+方法
編譯好的erlang 的debug版本程序反編譯步驟如下(比如 a.beam):
1、{ok, {_, [{abstract_code, {_, Ac}}]}} = beam_lib:chunks(code:which(a), [abstract_code]).
2、io:fwrite("~s~n", [erl_prettypr:format(erl_syntax:form_list(Ac))]).
這樣我們就得到的a.beam的預處理之後的程序。
如果我們想查看beam文件的匯編程序erts_debug:df(a). 執行完畢會得到a.dis文件,裡面就是對應的匯編程序
注意只有debug版本才能反編譯
『柒』 開始接觸erlang,erlang怎麼編譯成一個獨立運行的程序
escript可以直接執行erl源碼
$ cat factorial
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -smp enable -sname factorial -mnesia debug verbose
main([String]) ->
try
N = list_to_integer(String),
F = fac(N),
io:format("factorial ~w = ~w\n", [N,F])
catch
_:_ ->
usage()
end;
main(_) ->
usage().
usage() ->
io:format("usage: factorial integer\n"),
halt(1).
fac(0) -> 1;
fac(N) -> N * fac(N-1).
$ factorial 5
factorial 5 = 120
$ factorial
usage: factorial integer
$ factorial five
usage: factorial integer
『捌』 erlang下怎樣生成可執行文件
1、打開c語言編輯工具(vc6.0),寫入所編程序源代碼;
2、點擊 組建-編譯-執行;
3、執行完程序,點擊回車;
4、點擊文件另存為把文件存到你能夠找到的文件夾中,比如桌面;
5、打開你剛保存文件的文件夾,內含有一個 Bebug 的文件夾。注意:如果沒有,請再次執行第二步;
6、打開Bebug的文件夾,有一個以.exe為後綴名的文件,就是所需要的可執行文件,將其拷貝出,就可以單獨執行,也就是一個小軟體生成了。