Cygwin和OCaml:OPAM + Batteries

3
我在Windows 8环境下广泛使用Cygwin(不想直接在机器上引导/加载Linux)。我使用Eclipse的OCamlIDE插件,使用此工作流程设置时遇到了相对较少的问题。
然而,我希望使用Batteries,以便可以使用其中的动态数组和其他一些有趣的功能,从而加快开发进程。
我尝试过这种方法:http://ocaml.org/install.html,但是我收到以下错误:
$ sh ./opam_installer.sh /usr/local/bin
No file yet for i686:CYGWIN_NT-6.2-WOW64

我缺少什么,如何配置Cygwin以使其能够接受Opam安装程序?当我尝试另一种构建Opam的方式时,我遇到了以下问题:

'i686-w64-mingw32-gcc' is not recognized as an internal or external command,

作为一个Makefile错误和构建失败的原因。似乎与mingw32-gcc有关的问题,我需要安装和/或配置什么来使Cygwin正确编译/构建东西。我已经安装了wget和curl。
我的总体问题是:最好的方法是什么,可以在最短的时间内安装Batteries到我的系统上,并避免手动跟踪其所有依赖项?是否有一种方法可以只构建库模块,例如BatDynArray和包含文件:
include BatEnum.Enumerable
include BatInterfaces.Mappable

那样我就可以在我的代码中直接使用open...;;和/或include...;;调用它们。
2个回答

3

使用WODI,OCaml在Windows上可以完美运行,WODI是一个基于Cygwin的发行版,包括Batteries和大量其他有用的软件包(这些软件包在Windows上手动安装非常麻烦)。

我强烈建议您尝试一下WODI,我相信它是我们这些被遗忘的灵魂必不可少的工具,因为我们必须处理Windows。


1
最近我花了不到20分钟的时间在Windows上设置WODI,通过WODI软件包管理器下载了所有必要的软件包,并构建了我的几个项目。 - Max Mouratov
Max,你知道我怎么使用Wodi的包管理器吗?我需要安装lablgtk(即使wodi自己也在使用它哈哈),这样我才能使用该库来编写我的GUI界面。 - 9codeMan9
1
当然可以!只需使用GUI :-) “开始 -> 应用程序 -> Wodi32 -> Wodi32软件包管理器”。你手动安装了Batteries吗? :-O - Max Mouratov
2
看起来 Wodi 最近已经停止更新了。它一直运行得非常好,这真的很遗憾。 - Catalin Hritcu
实际上,这只是Windows上最可用的OCaml发行版——唯一一个具有工作软件包系统的版本。也许我们可以帮助保持它的活力(至少托管现有文件)?我已经尝试通过电子邮件联系作者,但没有成功(他似乎关闭了个人服务器)。 - Max Mouratov
显示剩余6条评论

3
首先,include并不是你想象的那样。 open Batteries应该是你要找的。 OPAM在Windows上还不够稳定(也许Thomas可以更新一下现状)。
老实说,我建议在虚拟机上安装Linux,这样你就可以立即开始使用OPAM了。否则,看看这个针对跨平台支持的OCaml包管理器:http://yypkg.forge.ocamlcore.org/。我自己从未尝试过。你可以尝试最后一个包管理器GODI,但我不确定它是否支持Windows。
最后,如果这些选项都不起作用,那么应该可以从源代码安装Batteries。你只需要OCaml和make。如果这种方法有问题,那么你应该在这里或错误跟踪器上跟进,因为据我所知,Batteries打算支持Windows。

1
+1 "在虚拟机上安装Linux",例如Virtual BoxVMWare。个人而言,我十多年前就放弃了Cygwin,转而使用虚拟机,并从未后悔过。 - Guy Coder
嗯,虚拟机其实是个聪明的想法...它会给我完整的Linux环境的所有好处,而不是那个环境的仿真,并且当我不需要完整的Linux环境时,我可以切换回我的电脑... - 9codeMan9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接