描述过程使用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
最后的话
版权与许可
修改此文档
rebar 目前不能在windows安装,rebar的安装文件是二进制可执行文件,不是.exe,windows不能执行。不过,你可以在windows下模拟Linux环境。
BTW,Erlang开发在windows下是很蛋疼的一件事。
描述 :本人学习Spring Boot过程中需要用到RabbitMAQ,所以就去安装了。途中踩了无数个坑,哎呦,疼死我了。花了一天多的时间才解决,所以想花点时间来记录下一自己踩的坑。这里啰嗦一下,也是帮老师宣传一下,想要学习spring boot 的同学,可以去看看这份资料:
程序员弟弟
说一下采坑主要的原因 :我自己的主要是RabbitMAQ和Erlang之间版本的冲突问题。导致我无法访问 http://localhost:15672 。然后就浪费了很多时间去改其他的错误,结果也没能实现。
当初我也没能安装成功,在网上查找到了这位博主的教程(对我有了启发,也是问题的一个突破点):
https://blog.csdn.net/weixin_39735923/article/details/79288578
Note that if the emulator is started with erlexec (typically
from the erl script), these flags should be specified with +.
我去网上找了 bad "MBa" value: ageffcbfUsage: beam.smp.dll [flags] [ -- [init_args] ] 类似的问题,也找到了相应的答案:
https://groups.google.com/forum/#!msg/rabbitmq-users/vtNMTzMw88I/S52tBIJ1AwAJ
好心的外国网友给出了这样的答案:
1.您的Erlang版本不支持某些运行时分配器标志3.7.6和更高版本
版本使用。但是,在Erlang <20.2.1上使用了一组不同的标志。
2.最简单的选择是卸载存在的所有Erlang版本,然后安装Erlang 20.3或21.0(对于3.7.7+)。
如果你选择了RabbitMAQ 3.7.7+以上的版本,那么请选择Erlang 20.3或21.0的版本。还有一个方法就是你选择我这个版本,因为其他版本我也没有试过,不知道其他版本能不能向适配。
更高版本
版本使用。但是,在Erlang <20.2.1上使用了一组不同的标志。
2.最简单的选择是卸载存在的所有Erlang版本,然后安装Erlang 20.3或21.0(对于3.7.7+)。
如果你选择了RabbitMAQ 3.7.7+以上的版本,那么请选择Erlang 20.3或21.0的版本。还有一个方法就是你选择我这个版本,因为其他版本我也没有试过,不知道其他版本能不能向适配。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)