我正在學習更復雜的編輯OCaml
。如何在OCaml中很好地管理編譯?
第一我還沒有被C程序員,我真的不知道什麼是make
等我使用Mac OS X terminal
,我也是一個Java程序員。
我發現OCaml中,有一些東西像ocamlc
,ocamlbuild
,ocamlfind
,oasis
,等我非常被他們迷惑。
問題1
誰能告訴我,我應該之中ocamlc
,ocamlbuild
,ocamlfind
,oasis
使用哪一個?
問題2
我想這個教程http://nicolaspouillard.fr/ocamlbuild/ocamlbuild-user-guide.html,這是很好的ocamlbuild
。
但是如果我想使用外部庫如ocaml-batteries
或camomile
,如何使用ocamlbuild
連接這些庫?
問題3
這是關於所有的外部庫一個更實際的問題。
因此,對於許多ocaml庫,我使用opam install
來安裝它們。
爲什麼需要安裝一個圖書館嗎?我的意思是,在Java中,通常我們只是將lib複製到某處,然後將lib的路徑包含到
-classpath
或-cp
中。那麼爲什麼我們需要安裝OCaml庫?opam install
之後的一個lib,比如camomile
(對於utf8),發生了什麼,會發生什麼?這種安裝只是下載一個lib的源文件並將其複製到某個地方?怎麼樣才能找到這個庫呢?例如,如果我
opam install camomile
,那麼我如何鏈接或使用他們在我自己的代碼?通常如何使用
ocaml library
?例如,對於camomile
(http://camomile.sourceforge.net/dochtml/index.html),它們有三個模塊:CamomileLibrary
等。所以我應該在我的代碼中使用open
模塊,對不對?
感謝您的回答。我只想對整個過程有一個清晰的描述,目前我的腦海裏一片混亂。 _tags應該在哪裏? – 2013-04-24 16:03:50
在項目的根目錄中,即運行ocamlbuild的地方。 Ocamlbuild會查找當前目錄中的某些文件,如果它發現它們,它們將用於配置它的構建方式。 '_tags'用於定義編譯某些文件時要定義的標記(即包含在搜索路徑中的內容,警告標誌,調試標誌,鏈接的包等)。 'myocamlbuild.ml'用於定義OCaml中的其他構建規則(OASIS將爲您生成一個相當複雜的作爲起點)。 – 2013-04-24 16:11:29