我正在尝试将ocamlfind与OCaml编译器和顶层一起使用。据我所知,我需要将所需的库放在项目根目录的_tags文件中,以便ocamlfind工具可以处理它们的加载-允许我像下面这样在我的模块中打开它们:

open Sdl
open Sdlvideo
open Str


目前,我的_tags文件如下所示:

<*>: pkg_sdl,pkg_str


显然,我可以使用ocamlc或ocamlopt参数启动ocamlfind命令,前提是我不想编译我的项目,但是我看不到以相同方式启动顶层的选项。有什么方法可以做到这一点(例如“ ocamlfind ocaml”)?

我也不知道如何将项目特定的模块放置在_tags文件中:假设我有一个名为Land的模块。我当前正在使用#use "land.ml"指令打开文件并加载模块,但是建议这不是一个好习惯。我应该在_tags中使用哪种语法来指定应由ocamlfind加载(考虑到land.ml不在ocamlfind搜索路径中)?

谢谢,
查理·P。

编辑:根据这篇文章的第一个答案,_tags文件不能与ocamlfind一起使用。上面的问题仍然存在,列表中只有一个新问题:指定要分配给ocamlfind的库的正确方法是什么?

最佳答案

试试这个:

$ cat >> .ocamlinit
#use "topfind";;
#require "sdl";;
#require "sdlvideo";;

open Sdl
open Sdlvideo;;
open Str;;


.ocamlinit来自当前目录,回退到/home/user/.ocamlinit。您可以通过ocaml -init <filename>显式覆盖它

10-01 23:44