使用 3rd 方库编译
Compilation using 3rd party libraries
我正在使用 Getopt 来解析 commands.ml 中的命令行参数。所以 commands.ml 的第一行看起来像这样:
open Getopt
我似乎无法弄清楚如何使用此模块编译 commands.ml。我尝试了很多东西,但总是出现以下错误:
File "commands.ml", line 1, characters 5-11:
Error: Unbound module Getopt
我已将#require "Getopt" 添加到我的 .ocamlinit 文件中。
你说你正在使用 Getopt
,“so” 你的代码中有 open Getopt
。但那里没有直接联系。在不打开模块的情况下使用模块更常见(而且在我看来通常更好)。
open
的使用仅控制包含模块中可用的名称。它不会告诉编译器去哪里寻找打开的模块。
标准 OCaml 库中没有 Getopt
模块。解析命令行的标准模块名为Arg
。如果您使用的是外部库,则需要使用 -I
标志来告诉编译器在哪里寻找它。
.ocamlinit
文件控制 OCaml 顶层(read-eval-print 解释器)的行为。它不会影响编译器的行为。
如果您使用的是构建工具,可能有更简单的设置方法。但是你需要更仔细地解释你的构建环境。
问题在于,您的问题有很多答案。根据您选择的构建系统,会有不同的命令。这就是为什么我们要问的原因。但是看起来,你没有偏好,所以让我试着给你一些答案。
与ocamlbuild
$ ocamlbuild -package getopt commands.native
与ocamlfind
$ ocamlfind ocamlopt -package getopt commands.ml -o commands.native
有关更多说明,请阅读 following。
个人建议:如果您不确定选择什么,请使用 ocamlbuild
。
将 ocamlfind
与您喜欢的编译器一起使用(我在下面使用 ocamlopt),如下所示:
ocamlfind ocamlopt -package getopt -linkpkg commands.ml -o commands
如果您没有安装 getopt,这仍然会失败。 Getopt 可能与 opam 一起安装:
opam install getopt
我建议您改用 Arg
。它是 OCaml 标准库的一部分,通常使用起来很愉快。
我正在使用 Getopt 来解析 commands.ml 中的命令行参数。所以 commands.ml 的第一行看起来像这样:
open Getopt
我似乎无法弄清楚如何使用此模块编译 commands.ml。我尝试了很多东西,但总是出现以下错误:
File "commands.ml", line 1, characters 5-11:
Error: Unbound module Getopt
我已将#require "Getopt" 添加到我的 .ocamlinit 文件中。
你说你正在使用 Getopt
,“so” 你的代码中有 open Getopt
。但那里没有直接联系。在不打开模块的情况下使用模块更常见(而且在我看来通常更好)。
open
的使用仅控制包含模块中可用的名称。它不会告诉编译器去哪里寻找打开的模块。
标准 OCaml 库中没有 Getopt
模块。解析命令行的标准模块名为Arg
。如果您使用的是外部库,则需要使用 -I
标志来告诉编译器在哪里寻找它。
.ocamlinit
文件控制 OCaml 顶层(read-eval-print 解释器)的行为。它不会影响编译器的行为。
如果您使用的是构建工具,可能有更简单的设置方法。但是你需要更仔细地解释你的构建环境。
问题在于,您的问题有很多答案。根据您选择的构建系统,会有不同的命令。这就是为什么我们要问的原因。但是看起来,你没有偏好,所以让我试着给你一些答案。
与ocamlbuild
$ ocamlbuild -package getopt commands.native
与ocamlfind
$ ocamlfind ocamlopt -package getopt commands.ml -o commands.native
有关更多说明,请阅读 following。
个人建议:如果您不确定选择什么,请使用 ocamlbuild
。
将 ocamlfind
与您喜欢的编译器一起使用(我在下面使用 ocamlopt),如下所示:
ocamlfind ocamlopt -package getopt -linkpkg commands.ml -o commands
如果您没有安装 getopt,这仍然会失败。 Getopt 可能与 opam 一起安装:
opam install getopt
我建议您改用 Arg
。它是 OCaml 标准库的一部分,通常使用起来很愉快。