日期:2014-05-17  浏览次数:20871 次

如何在windows下编译erlang

?

  • 介绍
  • 常被问及的问题
  • 你所需要的工具及环境
  • shell环境
  • 编译与安装
  • 开发
  • 使用Git
  • 最后的话
  • 版权与许可
  • 修改此文档

?

?

介绍

此文档描述了如何在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

最后的话

版权与许可

修改此文档

?

?