Ocaml Graphics.open#u graph赢得';无法在脚本模式下工作

Ocaml Graphics.open#u graph赢得';无法在脚本模式下工作,graphics,ocaml,x11,Graphics,Ocaml,X11,我正在尝试使用ocaml图形模块。 该行: #Graphics.open_graph "";; 在交互模块中工作正常,即在X11中弹出一个白色背景的小窗口。 但是,当我尝试使用脚本模式时--将此行放入文件中,然后编译它: ocamlc -o a.out graphics.cma code.ml 只有X11启动,但没有弹出窗口。 我用的是mac电脑。有人知道为什么吗?谢谢 后续行动: 在脚本模式下,弹出窗口似乎会在代码执行后立即关闭。因为如果我使用XTerminal编译,我可以看到一个小窗口

我正在尝试使用ocaml图形模块。 该行:

#Graphics.open_graph "";;
在交互模块中工作正常,即在X11中弹出一个白色背景的小窗口。 但是,当我尝试使用脚本模式时--将此行放入文件中,然后编译它:

ocamlc -o a.out graphics.cma code.ml
只有X11启动,但没有弹出窗口。 我用的是mac电脑。有人知道为什么吗?谢谢


后续行动:

在脚本模式下,弹出窗口似乎会在代码执行后立即关闭。因为如果我使用XTerminal编译,我可以看到一个小窗口弹出,但随后关闭

我通过在底部添加一个无限循环来保持窗口打开:

while true do () done;;

但还是不明白事情到底是怎么回事。请帮忙。谢谢

脚本终止时,将释放所有资源:内存、文件描述符,包括X窗口

如果添加无限循环,脚本不会终止,窗口将保持打开状态

同样,在顶层下,只要不关闭顶层,窗口就会保持打开状态

我建议在脚本末尾添加两行:

  • 打印“按回车键退出”
  • 从键盘输入读取一行

这样,在用户按enter键之前,脚本不会终止。

脚本终止时,所有资源都将被释放:内存、文件描述符,包括X窗口

如果添加无限循环,脚本不会终止,窗口将保持打开状态

同样,在顶层下,只要不关闭顶层,窗口就会保持打开状态

我建议在脚本末尾添加两行:

  • 打印“按回车键退出”
  • 从键盘输入读取一行

这样,在用户按enter键之前,脚本不会终止。

事实上,正如jrouquie解释的那样,您需要延迟程序的终止。我个人这样做的方式是等待用户输入。在交互式程序(或正在研究的打开图形模式的功能)的末尾,我将:


这将等待键盘上的某个键被按下,并在返回之前忽略该键值。

事实上,正如jrouquie解释的那样,您需要延迟程序的终止。我个人这样做的方式是等待用户输入。在交互式程序(或正在研究的打开图形模式的功能)的末尾,我将:

这将等待键盘上的某个键被按下,并在返回之前忽略该键的值

ignore (Graphics.read_key ())