2013-08-26 68 views
14

运行ocaml的未结合图形模块

open Graphics;; 
OCaml中

返回一个错误,称这是一个未绑定的模块。在终端(ocaml)中运行它会返回相同的结果。

这是否意味着我的图形模块某种程度上没有安装ocaml包?如果是这样,我该如何安装模块?

在Fedora上。

回答

15

图形模块默认没有准备好。您需要手动加载它。在顶层:

$ ocaml 
     OCaml version blahblah 
# #load "graphics.cma";; 
# open Graphics;; 

,或者你可以在命令行中指定:

$ ocaml graphics.cma 
     OCaml version blahblah 
# open Graphics;; 

我不知道Fedora的,但如果上述失败,显卡是不是真的安装在您的环境。

+3

它返回一个“Can not find graphics.cma”消息。我猜测它没有安装ocaml软件包。任何提示给我? – Secret

+1

然后我怀疑Fedora的OCaml二进制包中没有包含图形模块。这实际上是一个问题:https://bugzilla.redhat.com/show_bug.cgi?id=468506如果我是你,我会自己安装OCaml,包括图形。 – camlspotter

+0

感谢您的回答 - 在Ubuntu 10上,所有的作品都不错,图形窗口打开! –

31

此错误在Mac OS X上也经常出现。使用Homebrew时,此模块在安装时默认为禁用,因此brew install ocaml将不会安装图形模块,可能是由于XQuartz依赖性。

如果您运行brew info ocaml,它会告诉您有一个标志,即--with-x11,它将“使用图形模块安装”。因此,要安装/重新安装ocaml的,你必须运行:

brew install Caskroom/cask/xquartz 
brew [re]install ocaml --with-x11 

最后记得要检查的运行ocaml实例是一个在/usr/local/Cellar/objective-caml/x.yy.z[_w]/bin,如果它不是那么前置一个网址给你PATH环境变量。另外请记住在安装XQuartz之后重新启动计算机。

+1

我来到这里与这个确切的问题。这是一个非常完整的答案IMO和阅读喜悦。谢谢! – jamescampbell

+0

不要在PATH变量前加上这个路径;请改用'/ usr/local/opt/ocaml/bin'。 OCaml升级时此路径不会更改。 – bfontaine

+0

几分钟后搜索不成功,这个答案很好。它现在工作完美无瑕。 – sharno