首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ocamlbuild中使用外部库

在ocamlbuild中使用外部库
EN

Stack Overflow用户
提问于 2013-01-27 02:04:49
回答 1查看 1.9K关注 0票数 6

我正在尝试使用ocamlbuild而不是make,但是我无法正确地将我的对象文件与外部.cma库链接起来。看起来ocamlbuild首先尝试确定依赖关系,然后忽略-L/path/to/lib.cma这样的标志。使用make时,我只是将带有-I-L标志的所有必要目录传递给ocamlc,但这些似乎不适用于ocamlbuild -- ocamlc总是失败,因为它找不到所需的库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-27 05:26:41

你至少有两种方法可以将你的参数传递给ocamlbuild,让它考虑到你的库:

$ ocamlbuild -cflags '-I /path/to/mylibrary‘-lflags '-I /path/to/mylibrary mylibrary.cma’myprogram.byte

将原生executable.

  • Use的.cma替换为.cmxa myocamlbuild.ml文件,让ocamlbuild“知道”该库,并在_tag文件中标记需要它的文件:

myocamlbuild.ml中:

打开Ocamlbuild_plugin open命令调度begin function | After_rules -> ocaml_lib ~extern:true ~目录:“/path/to/mylibrary”"mylibrary“”|_ -> ()

_tags中:

:use_mylibrary

myocamlbuild.ml中的ocaml_lib指令告诉工具名为"mylibrary“的库(特定的实现以.cma.cmxa或其他-配置文件、插件)位于目录"/path/to/mylibrary”中。

项目目录中与glob pattern对应的所有文件都将与ocamlbuild对"mylibrary“的使用相关联,并使用特殊参数进行编译(因此您无需担心本机或字节目标)。例如:

:use_mylibrary

注意:如果库位于编译器已知的路径中(通常是/usr/lib/ocaml/usr/local/lib/ocaml),则路径前缀可以安全地替换为+符号,因此/usr/lib/ocaml/mylibrary变为+mylibrary

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14539899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档