2011-09-01 44 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

相关问题