erlang查看编译版本
1. 如何在windows下编译erlang
此文档描述了如何在windows中构建erlang仿真器及OTP库。该说明适用于支持cygwin(为windows或Msys微系统模拟gnuish环境)的各种版本windows。我们已在如下平台构建过:Windows 2003 server, Windows XP Home/Professional, Windows Vista and Windows 7 (32 and 64 bit).你可能在Windows 2000上构建,但是你不能安装最新的Microsoft SDK,所以你不得不使用老版本的编译器。任意Windows95类的平台将肯定使你陷入麻烦,我虽不太肯定,但它一定会发生...
描述过程使用Cygwin或Msys作为构建环境,你可以在Cygwin/Msys中运行bash shell并且使用gnu make/configure/autoconf等来构建。模拟器的C源码绝大多数时用Microsoft Visual C++来编译,产生一个本地Windows二进制文件。如同我们经常构建预编译二进制文件的过程。为什么用VC++而非gcc我们将在稍后的FAQ中解释。
为使开源使用者能够构建模拟器,我给出了他们必须拥有的工具。二进制Windows发行版仍是那些没有Microsofte的开发工具并且/或者不想安装Cygwin或Msys的人的首选。
为使用Cygwin/Msys需要基本的Unix环境经验,如果你不知道如何在Unix环境中设置环境变量,运行程序等,你将会很快在Cygwin或Msys中感到迷惑。不幸的是我不能告诉全世界的人如何使用Cygwin和bash,也不能告诉如何安装Cygwin和基本的计算机操作。请向网上其它文档寻求帮助,或者你有以上问题时就使用二进制发行版。
但是,若你对环境与构建系统很熟悉,并且拥有所有必要工具,你有一个很好的机会使Erlang/OTP的Windows发行版更好。任何建议与补丁请提交至合适的邮件列表,让他们改进于下个版本的Erlang。如果对构建系统作出修改(如makefile之类)请不用担心同样的makefiles被用于Unix/VxWorks,因此你不会损坏其它平台。这对C源码是一样的,系统多数会指定代码居于$ERL_TOP/erts/emulator/sys/win32和$ERL_TOP/erts/etc/win32。$ERL_TOP/erts/emulator/beam目录里是通用代码。
Erlang/OTP在R9C版之前,Windows发布版部分构建于Unix(Solaris)盒中,部分构建于Windows盒中,用Perl来使两台机器交互与同步。R9C是首个能全构建于Windows而不再需要Unix的版本。现在我们已经对多个版本使用这个构建过程,并且它工作的很好。当然,对不丗机器和不丗安装过程仍然会有各种问题。我将尽力在我遇到过困难的地方给出提示,但是也请将你的经历用erlang-questions邮件列表来分享。我不可能帮助每个人应对他们所有的问题,请尽力解决问题并且提交解决方案或变通方法。记住,要共享而非只索取...
从R15B开始,我们的构建系统在Cygwin和Msys(MinGW的cygwin早期版本分支)均可运行。Msys是能在某些机器上安装后纤细的快速运行一个很小的包。如果Cygwin带给你麻烦,请尝试Msys代替,并且v.v.从R15B开始有一个本地64位版的Erlang,仅支持64位Windows7。这些说明也适用于32位和64位VM。
记住即使你构建的是64位VM,大多数的目录和文件仍然被命名为win32。你能看到名字win32表示任何windows版本不包括16位版,一些名为Win64只是在系统中显示,比如64位windows版Erlang安装文件默认为otp_win64_<version>.exe
继续,将开始一个小的FAQ,基于house questions和一些误解。
常被问及的问题
问:那么,我现在能在Windows上用GCC编译Erlang程序啰?
你所需要的工具及环境
shell环境
编译与安装
开发
使用Git
最后的话
版权与许可
修改此文档
2. 如何在Erlang中使用SSL
案例用CentOS版本的linux系统安装Erlang,方法如下:
1、首先要先安装GCC GCC-C++ Openssl等依赖模块
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
2、再安装ncurses模块
yum -y install ncurses-devel
yum install ncurses-devel
3、下载Erang源代码文件otp_src_R15B03-1.tar.gz文件,并对其付权限和解压文件
chmod +x otp_src_R15B03-1.tar.gz
tar -xzvf otp_src_R15B03-1.tar.gz
#重命名解压后的文件
mv otp_src_R15B03-1 erlang_R15B
4、下面开始安装erlang,依次执行以下操作
cd erlang_R15B/
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads
--enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
//不用java编译,故去掉java避免错误
make && make install //编译后安装
5、配置erlang环境
vi /etc/profile
export PATH=$PATH:/usr/local/erlang/bin
6、到此erlang的已经配置好,现在来看安装结果
# whereis erlang
erlang: /usr/local/erlang
3. erlang kernel 版本怎么看
查看电脑系统版本的步骤: 1,在桌面启动“控制面板”。2,在“控制面板”下,选择“系统”项。3,在打开的系统属性窗口中,在“常规”下就能看到自已电脑上的系统版本。4,如果想看系统位数,仍在桌面上打开“运行”。5,在“运行”框中输入cmd个词,然后按“确定”。6,在打开的“命令提示符”窗口中,输入“wmic computersystem get systemType”,然后按Enter确定。7,在这里,既可以看到系统版本,也可以看到位数是多少,如果是X86 - based PC,则是32位系统,如果是X64 - based PC,则是64位系统。
4. 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版本才能反编译
5. 如何调试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]). 这个是我随便输的)。然后大家在打开的窗口当中就可以调试自己的程序了。
6. linux怎么查看rabbitmq版本
在linux服务器上查看rabbitmq当前安装的版本号,通过rabbitmqctl status就可以获得,命令如下:
sudo rabbitmqctl status | grep rabbit
得到结果:
{rabbit,"RabbitMQ","3.7.3"},
3.7.3即为rabbitmq版本号。
(6)erlang查看编译版本扩展阅读
RabbitMQ的优点介绍:
除了Qpid,RabbitMQ是唯一一个实现了AMQP标准的消息服务器;
可靠性,RabbitMQ的持久化支持,保证了消息的稳定性;
高并发,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开发的语言,天生自带高并发光环,和高可用特性
集群部署简单,正是应为Erlang使得RabbitMQ集群部署简单;
社区活跃度高,根据网上资料来看,RabbitMQ也是首选;
7. erlang自带的C编译和makefile编译有什么区别
makefile提供了控制编译的方式,比如,我要编译那些目录下的那些文件,编译结果生成到哪里,c,c++等等语言都提供makefile编译控制机制,而且语法都类似甚至一样。而你的erlc或者c(mole)是erlang的编译实现方法。
8. erlang怎么编译成一个独立运行的程序
只是不同版本的Matlab,其编译器的使用方法有一定的差异,这一点要引起一定的注意。 在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入: Mbuild –setup 然 后根据提示执行相应的操作
9. 开始接触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