linux – 如何将OPAM中安装的库安装到OCaml?

linux – 如何将OPAM中安装的库安装到OCaml?,第1张

概述我在OCaml FFI上跟踪了 this tutorial并通过OPAM安装了Ctypes: opam install ctypes 但是,OCaml找不到该模块: open Ctypes(* ... *) 我收到错误: Unbound module Ctypes 看起来我需要让OCaml知道我的Ctypes安装位置在哪里?我是否需要更新一些路径变量以让OCaml查找通过OPAM安装的库? 这是 我在OCaml FFI上跟踪了 this tutorial并通过OPAM安装了Ctypes:

opam install ctypes

但是,OCaml找不到该模块:

open Ctypes(* ... *)

我收到错误:

Unbound module Ctypes

看起来我需要让OCaml知道我的Ctypes安装位置在哪里?我是否需要更新一些路径变量以让OCaml查找通过OPAM安装的库?

这是Ubuntu 15.04,OCaml 4.01.0,OPAM 1.2.0.

解决方法 在系统上安装某些东西并不会使编译器自动显示,这不仅适用于OCaml,而且适用于大多数传统系统,例如C或C等.

这意味着您需要将一些标志传递给编译器,或者编写Makefile,或者使用一些项目管理系统.

在OCaml中,我们拥有相当成熟的基础设施,尤其适用于opam.我不想深入解释,只是快速概述.

ocamlfind工具用于在系统上查找库.它在概念上与pkg-config有点接近,但在设计上却截然不同.它包装了编译器工具,以便将选项传递给它们.

ocamlbuild是一款华丽的瑞士刀,是每个OCamler的必备品.它是一种了解所有其他工具的工具,以及如何将它们粘合在一起.我会说这是编译项目的首选方式,尤其是小项目.

绿洲在精神上接近autotools,但不是那种泛型并且是在前提下编写的,它应该非常容易使用.事实上它很容易,但仍然非常灵活和强大.

记住这一概述,我们可以直接解决您的问题.所以你已经安装了ctypes.现在让我们从ocamlfind的角度看一下ctypes包在系统中是如何可见的.最简单的方法是列出所有包,ocamlfind可见并在那里找到ctypes:

$ocamlfind List | grep ctypesctypes              (version: 0.4.1)ctypes.foreign      (version: 0.4.1)ctypes.stubs        (version: 0.4.1)ctypes.top          (version: 0.4.1)

所以,看起来,在ctypes伞下有4个库.一个基本库和一些额外的库,它们提供了一些默认情况下不需要的功能.

不要让我们尝试将它们与ocamlbuild一起使用

ocamlbuild -package ctypes yourprogram.native

或者,没有ocamlbuild直接使用ocamlfind:

ocamlfind ocamlopt -package ctypes yourprogram.ml -o yourprogram.native

正如您所看到的,有一个包选项,您可以向其传递ocamlfind找到的包的名称,并且它将自动对编译器可见.

总结

以上是内存溢出为你收集整理的linux – 如何将OPAM中安装的库安装到OCaml?全部内容,希望文章能够帮你解决linux – 如何将OPAM中安装的库安装到OCaml?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1021177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存