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为后缀名的文件,就是所需要的可执行文件,将其拷贝出,就可以单独执行,也就是一个小软件生成了。