OCaml:尝试打开图形时出错 - “异常:Graphic.Graphic_failure “无法打开显示”。
Posted
技术标签:
【中文标题】OCaml:尝试打开图形时出错 - “异常:Graphic.Graphic_failure “无法打开显示”。【英文标题】:OCaml: Error while trying to open a graph - 'Exception: Graphics.Graphic_failure "Cannot open display ".' 【发布时间】:2022-01-11 03:26:08 【问题描述】:在很长一段时间没有使用 OCaml 之后,我正在尝试重新使用 OCaml 进行编程,并且由于我当前的计算机上没有 Linux,我一直在尝试通过 WSL(Windows 子系统Linux)。
在完成了我在 Linux 中所做的一切之后,每当我尝试使用 Graphics 模块编译一段代码时,我都会得到以下结果:
如果我尝试使用open_graph
命令,我会收到以下错误:
Exception: Graphics.Graphic_failure "Cannot open display ".
如果open_graph
的参数是一个空字符串,或者以空格开头,我会得到那个确切的错误。如果字符串参数不为空并且不以空格开头(根据我的阅读,无论如何都不应该使用空格),则错误消息包括如下所述的参数:
Exception: Graphics.Graphic_failure "Cannot open display [argument of open_graph]".
我发现this thread 用户提出了 DISPLAY 变量可能是“错误”的问题。该线程的原始发布者有一个不同的问题,但我觉得它是相关的,因为我在想也许使用 WSL 可能会使我的 DISPLAY 变量“关闭”,或者可能要求我为 DISPLAY 使用与我不同的值在完整的 Linux 操作系统上使用 - 但老实说,我不知道那会是什么。
我尽力理解我阅读的所有内容并清楚地解释我的问题,但我对 Linux 和一般编程的经验只有中等,所以如果我误解了某些内容或我的解释不是最清楚的,我很抱歉.遇到这种情况,请告诉我,我会尽力改正的。
干杯!
完整代码示例和准确错误信息:
#use "topfind";; #require "graphics";; Graphics.open_graph "";;
返回错误信息:
Exception: Graphics.Graphic_failure "Cannot open display ".
【问题讨论】:
一个简单的解决方案是在您的笔记本电脑上安装Debian 或Ubuntu。大多数 Ocaml 开发人员都在运行一些 Linux 发行版......您也可能对RefPerSys 感兴趣。然后通过电子邮件联系我到basile@starynkevitch.net
法国巴黎附近
【参考方案1】:
根据https://github.com/ocaml/graphics/issues/21,你需要在你的WSL环境中安装一个X11服务器。
【讨论】:
确实如此!非常感谢您的帮助。如果将来有人正在阅读此主题并遇到类似问题,并且像我一样不知道如何安装这样的服务器,here 是一个有用的视频,说明如何安装。以上是关于OCaml:尝试打开图形时出错 - “异常:Graphic.Graphic_failure “无法打开显示”。的主要内容,如果未能解决你的问题,请参考以下文章