2013-09-21 34 views
-1

所以我剛剛在我的Ubuntu(12.04)上安裝了ocaml。默認情況下它會安裝3.12.1。我在hello.mlocaml hello world make not working

print_string "Hello alok\n";; 

寫了下面的問候詞的程序,但是當我嘗試編譯和運行hello.ml,它只是不顯示任何信息。我運行這些命令來編譯hello.ml

ocamlc -o hello hello.ml 
./hello 

我開始我的終端,去哪裏hello.ml是,開始ocaml的目錄,並給予上述命令,但它什麼都不做。

如果我通過在ocaml窗口本身上書寫print_string "Hello alok\n";;來手動嘗試打印hello world,它工作正常。

請幫我解決這個問題!

回答

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上顯示一個實際的會話。即,顯示你輸入的內容和輸出結果。

+0

感謝傑弗裏,這正是你所說的。我正在做這個愚蠢的小錯誤,正在從ocaml內部編譯.. ahh覺得如此尷尬後語:D – Alok

0

print_string不會自動刷新標準輸出的內容,因此您需要自行刷新它。

在您例如,您可以通過替換它:

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

另外,您還可以使用print_endline

print_endline "Hello alok";; 

print_newline功能:

print_string "Hello alok";; 
print_newline();;