2015-02-04 38 views
4

我使用綠洲來建立我的ocaml項目,源代碼目前在一個名爲src目錄。綠洲build文件看起來像這樣:綠洲建立配置與子目錄

OASISFormat: 0.4 
Name:  Test 
Version:  0.1 
Synopsis: no 
Authors:  Me 
License:  BSD-3-clause 
Plugins:  META (0.4) 

Executable abc 
    Path:  src 
    BuildTools: ocamlbuild 
    MainIs:  main.ml 

現在我想將文件整理到子文件夾,把a.mli和a.ml到的src/util的。完成此操作後,該模塊對ocamlbuild/ocamlc不可見,從而導致「未綁定模塊A」錯誤。如果我手動調用ocamlc,我可以添加-I src/util標誌以使a.mli再次可見。

如何添加額外的路徑到綠洲配置沒有使文件完整的庫?

回答

5

這是不可能的綠洲,你需要修改你的_tags文件,但我wouldn'建議你這樣做,一般的做法是在你的oasis文件中創建Library條目,這有助於保持項目結構的清潔。如果你不想從utils創建一個庫,那麼爲什麼要打擾並將它移動到一個子文件夾中。

+3

對我來說,一個庫是用於代碼重用的 - 即它在一個不同的項目中足夠普遍。但是通過乾淨的界面劃分項目的不同部分仍然很有用,即使這些部分不能單獨使用。讓他們成爲一個庫(從它自己的.cma文件意義上來說)對我來說似乎過分了。 –

3

你可以嘗試添加<src/utils>: include_tags文件(由綠洲生成這個文件,你不能編輯它anyware:這樣做所產生的部分範圍之外

這會直接告訴ocamlbuild添加。 -I src/utils to its arguments,我不認爲有可能告訴綠洲自己這樣做,而不用製作一個庫。