Erlang程序的跨平台问题

来源:互联网 发布:appscan sql文件注入 编辑:程序博客网 时间:2024/06/05 10:30

用Erlang写出的程序,如果使用依赖某一操作系统的专有技术,会在其他系统上跑不起来。

最近,学用Mochiweb过程中,在Windows的cygwin中遇到了这个问题。

Mochiweb创建新应用程序app的方法是,在其根目录下键入:

$ escript ./scripts/new_mochiweb.erl app

生成目录app,其中有几个子目录和源文件、shell命令文件等。

进入目录app,进行make,然后 $ ./start.sh 启动应用服务器。

打开浏览器,http://localhost:8000 ,出现网页,程序运行正常。

但是,由于Mochiweb是在Linux上开发的,使用了文件系统专门的link技术,Windows不予支持,在make时就会出现问题,当然也就无法启动。

问题的根源是Erlang函数  file:make_symlink/2

在eshell中试验:

1>  file:make_symlink("1","2").

{error,enotsup}

2> 

意思是:“error: Erlang not support”

解决的办法:

修改三个文件的内容 scripts/new_mochiweb.erl,src/mochiweb_skel.erl,app/start.sh

一切正常了。

在Mochiweb之上安装的Nitrogen也有相同问题,解决方法同上。

 

原创粉丝点击