Erlang程序的跨平台问题

用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也有相同问题,解决方法同上。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值