2011-09-01 46 views
6

我試圖保持我的項目自包含,所有主要的第三方庫依賴項在項目存儲庫中構建和引用。我的項目的主要ocaml部分依賴於ocamlbuild。ocamlfind/ocamlbuild工具鏈如何與包的項目本地副本一起使用?

但對於像附帶的電池包的複雜,似乎有很強的期望,他們鏈接到通過ocamlfind項目。 ocamlfind似乎認爲軟件包將在全球範圍內安裝。 (我意識到它允許環境變量和其conf指向備用位置,但它基本上似乎仍然圍繞着軟件包全局配置的假設 - 它沒有等效的-I-L標誌來動態擴展搜索路徑例如,可以設置環境變量來動態重寫ocamlfind配置以搜索項目本地樹,但這比單純的參數更加笨拙,而且似乎這樣做會很具有挑戰性同時除去發現性主系統包在主site-lib,其也可以被需要的。)

什麼是建築物和建築物針對非平凡第三帕一個健全戰略使用ocamlbuild的項目的本地樹中的ty包?

回答

3

使用環境變量(或單獨findlib.conf)是一段路要走(和方便)。而且它不需要全球包裝去除可發現,請參閱參考手冊pathdestdirfindlib.confOCAMLPATHOCAMLFIND_DESTDIR環境變量分別)。

基本上你安裝項目的本地包時設置destdir到本地路徑,並前面加上path使用它們時(不要忘記創建destdirstublibs(並將其添加到ld.confstdlib如果您正在構建的字節碼二進制文件))。

PS我認爲這是ocsigen-bundler使用的方法。

請告訴我們,如果您遇到任何問題(因爲我有興趣使用同樣的方法太)。

+0

我還沒有清盤走這路線,到目前爲止,我卻遲遲沒有確認成功,但我相信它應該工作。 – jrk

相關問題