-1

所以我刚刚在我的ubuntu(12.04)上安装了ocaml。默认情况下,它安装 3.12.1。我写了下面的hello word程序hello.ml

print_string "Hello alok\n";;

但是当我尝试编译和运行时hello.ml,它只是不打印任何东西。我正在运行这些命令来编译 hello.ml

ocamlc -o hello hello.ml
./hello

我正在启动我的终端,转到所在的目录hello.ml,启动 ocaml 并给出上述命令,但它什么也没做。

如果我手动尝试通过在 ocaml 窗口本身上hello world书写来打印,它工作正常。print_string "Hello alok\n";;

请帮我解决这个问题!

4

2 回答 2

2

以下是它在 OS X 上的工作方式:

$ cat alok.ml
print_string "Hello alok\n"

(所以,我有一个名为 alok.ml 的文件,其中包含您的程序文本。)

$ ocamlc -o alok alok.ml
$ ./alok
Hello alok

这只是表明它可以按预期在 OS X 上运行,因此它也应该在 Ubuntu 上运行。您给出的命令看起来有些乱码,尽管可能只是格式问题。您对您尝试的内容的描述也有点令人困惑——您当然不想从OCaml 顶层内部进行编译。

我希望这有帮助。如果没有,也许你可以在 ubuntu 上显示一个实际的会话。即,准确显示您输入的内容和输出的样子。

于 2013-09-21T23:38:22.220 回答
0

print_string不会自动刷新标准输出的内容,所以需要自己刷新。

在您的示例中,您可以将其替换为:

print_string "Hello alok\n";;
flush stdout;;

或者,您也可以使用print_endline

print_endline "Hello alok";;

print_newline功能:

print_string "Hello alok";;
print_newline ();;
于 2013-09-25T11:47:36.947 回答