我认为绿洲是一种替代通常的autoconf工具链来构建ocaml项目的方法,我非常喜欢这种方法。
不幸的是,我必须将我的项目与不同系统上的C库链接起来,所以我需要弄清楚该库的实际位置。在我的开发系统上,以下设置有效:
Executable e2bench
Path: .
CompiledObject: best
BuildTools: ocamlbuild
BuildDepends: e2lang, core, core_bench
CCLib: -ltnp -L/home/choeger/local/lib/
DllLib: libtnp
DllPath: /home/choeger/local/lib
MainIs: e2bench.ml
但显然(即使我不知道为什么;)),并非所有人都会将库安装到/ home / choeger / local - 所以我基本上需要在setup.ml中添加一个标志,要求库路径并相应地设置一个绿洲变量(几乎像autoconf一样)。我该怎么做?
作为一个额外的问题:如何测试此路径的链接以提供早期纾困(如配置脚本)而不是ocamlbuild错误?
第二个奖励:我如何调用pkg-config来实现这个目标?
答案 0 :(得分:1)
我认为目前在绿洲中没有直接的方法,但是pkg-config集成正在进行中,并且泛型参数传递是一种经常被请求的功能,所以希望它有一天会被支持(补丁欢迎! )。另一方面,要求库的用户设置环境以便链接器可以使用库对我来说听起来不过于严格,特别是考虑到库也应该在运行时可用..