gpt4 book ai didi

ocaml - 如何将 ocamlfind/ocamlbuild 工具链与包的项目本地副本一起使用?

转载 作者:行者123 更新时间:2023-12-04 15:36:39 29 4
gpt4 key购买 nike

我试图保持我的项目自包含,在项目存储库中构建和引用所有主要的 3rd 方库依赖项。我项目的主要 ocaml 部分依赖于 ocamlbuild。

但是对于像 Batteries Included 这样的复杂包,似乎强烈期望通过 ocamlfind 将它们链接到项目中。 ocamlfind 似乎假设软件包将被全局安装。 (我意识到它允许环境变量和它的 conf 指向备用位置,但它从根本上似乎仍然是围绕包是全局配置的假设构建的——它没有等效的 -I-L 标志来动态扩展例如,包的搜索路径。可能可以设置环境变量来动态覆盖 ocamlfind 配置以搜索项目本地树,但这比单纯的参数要笨拙得多,而且似乎也很有挑战性这样做,而无需同时删除主 site-lib 中主系统包的可发现性,这可能也是需要的。)

使用 ocamlbuild 在项目本地树中针对非平凡的 3rd 方包构建和构建项目的明智策略是什么?

最佳答案

使用环境变量(或单独的 findlib.conf)是一种方法(而且很容易)。并且它不需要删除全局包的可发现性,参见 path 的引用手册和 destdirfindlib.conf (分别是 OCAMLPATHOCAMLFIND_DESTDIR 环境变量)。

基本上你设置destdir安装项目本地包时添加到本地路径,并添加到 path使用它们时(不要忘记在 stublibs 中创建 destdir(如果您正在构建字节码二进制文件,请将其添加到 ld.confstdlib 中))。

PS我认为这是ocsigen-bundler中使用的方法.

请告诉您是否遇到任何问题(因为我也有兴趣使用相同的方法)。

关于ocaml - 如何将 ocamlfind/ocamlbuild 工具链与包的项目本地副本一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274960/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com