2017-01-14 26 views
0

我有一個interpreter.ml文件,其中包含一個解釋器和一些type定義。進口每ml文件到另一個

我已經開發了一些試驗用的電池,以檢查是否解釋工作得好不好。

當我把用於測試解釋器的行爲的函數放在同一個解釋器文件中時,所有的工作都很好,但是如果我嘗試使用不同的文件進行測試(比如tests.ml),它沒有加載解釋者的功能和定義。

interpreter.mltests.ml是在同一文件夾

open Interpreter#use "./interpreter.ml"都嘗試從裏面tests.ml,但它不會編譯,也沒有在IDE關閉警告(那種......我使用Visual在MacOS Studio代碼)

我已經試圖按照official documentation,但它不會與ocamlopt -c tests.ml

+0

如果我理解正確的話,你的程序+測試分裂成2的源文件,並嘗試編譯那些2檔,以得到一個可執行文件,將進行測試。那是對的嗎 ?爲了簡化編譯過程,你使用了ocamlbuild嗎? –

+1

或者,您也可以使用cppo來實現像cpp這樣的預處理器;你可以用它來包含一些文件。 –

+0

@PierreG。你理解得很好。 ocamlc -o EXE test.ml interpreter.ml應工作:因爲我是新來的OCAML,該項目是由僅僅通過兩個文件,並沒有似乎有必要使用它 –

回答

1

編譯作爲討論的結果,可執行由編譯2個文件獲得& interpreter.ml以正確的順序(test.ml依賴於在interpreter.ml中定義的對象;作爲結果test.ml必須引用給解釋對象或者通過該條open Interpreter或前綴與Interpreter所有相關項目):

ocamlc -o exec interpreter.ml test.ml 

ocamlbuild是因爲它解決了由它本身的依賴關係更容易: 下面的命令:

ocamlbuild test.native 

會產生可執行文件。

相關問題