2种预处理
1)包含文件
-include(Filename)
Filename 是绝对路径
-include_lib(Filename).
Filename 是相对路径,相对于安装的Erlang库根目录,比如"C:\Program Files\erl5.9\lib"。
包含文件通常是记录文件
2)宏
-define(Con, Replacement).
-define(Func(Var1,...), Replacement).
有一批预定义宏:?FILE, ?MODULE, ?LINE
用户自定义的模块属性,就像“纹身”
获取自定义模块属性
>extract:attribute(Beamfile, Attrname).
加载模块的搜索路径
code:get_path()
code:add_patha(Dir)/code:add_pathz(Dir)
编译/运行程序的方法
命令行下:
>erlc <Module>.erl
>erl -noshell -s <Module> <Function> <Arguments>
模块中:
compile:file(File)
Module:Function(Arguments)
Erlang shell中
>cd(Dir).
>c(Module).
>Module:Function(Arguments).
使用makefile进行自动编译(最新的及时是rebar?)
获取帮助
>m(<Module>)
崩溃转储
Erlang崩溃之后,留下一个文件erl_crash.dump在bin目录下。
启动web的崩溃分析器
>webtool:start()
它保存了错误发生的栈路径(尾递归部分没有栈存储)
1)包含文件
-include(Filename)
Filename 是绝对路径
-include_lib(Filename).
Filename 是相对路径,相对于安装的Erlang库根目录,比如"C:\Program Files\erl5.9\lib"。
包含文件通常是记录文件
2)宏
-define(Con, Replacement).
-define(Func(Var1,...), Replacement).
有一批预定义宏:?FILE, ?MODULE, ?LINE
用户自定义的模块属性,就像“纹身”
获取自定义模块属性
>extract:attribute(Beamfile, Attrname).
加载模块的搜索路径
code:get_path()
code:add_patha(Dir)/code:add_pathz(Dir)
编译/运行程序的方法
命令行下:
>erlc <Module>.erl
>erl -noshell -s <Module> <Function> <Arguments>
模块中:
compile:file(File)
Module:Function(Arguments)
Erlang shell中
>cd(Dir).
>c(Module).
>Module:Function(Arguments).
使用makefile进行自动编译(最新的及时是rebar?)
获取帮助
>m(<Module>)
崩溃转储
Erlang崩溃之后,留下一个文件erl_crash.dump在bin目录下。
启动web的崩溃分析器
>webtool:start()
它保存了错误发生的栈路径(尾递归部分没有栈存储)