首页 文章
  • 56 votes
     answers
     views

    构建和构建OCaml项目的首选方法是什么?

    对于生态系统的新手来说,目前尚不清楚构建和管理中小型OCaml项目的规范首选方式 . 我理解 ocamlc 的基础知识,它们反映了传统的UNIX C编译器,看起来很简单 . 但是,高于单个文件的一次性编译水平,目前还不清楚如何简单干净地管理编译 . 问题不是寻找潜在的工具,而是通过社区的经验验证一种或几种正确(足够)的方法来构建和构建标准的OCaml项目 . 我的模型用例是一个适度但非平凡的项目,...
  • 6 votes
     answers
     views

    ocamlfind / ocamlbuild工具链如何与包的项目本地副本一起使用?

    我试图保持我的项目自包含,在项目存储库中构建和引用所有主要的第三方库依赖项 . 我的项目的主要部分依赖于ocamlbuild . 但是对于像Batteries Included这样的复杂软件包,人们强烈期望通过ocamlfind将它们链接到一个项目中 . ocamlfind似乎假设将在全局安装软件包 . (我意识到它允许环境变量及其conf指向备用位置,但它基本上似乎仍然围绕包全局配置的假设 ...
  • 3 votes
     answers
     views

    我的Makefile中有硬编码路径 - 如何使用ocamlfind来消除这些? (或者如何使用ocamlbuild或omake代替)

    我正在尝试构建一个需要camlp4扩展的ocaml项目(在这种情况下为pa_deriving) . 这是我的Makefile: include ./Makefile.config OCAMLC := ${OCAMLFIND} ocamlc OCAMLOPT := ${OCAMLFIND} ocamlopt OCAMLDEP := ${OCAMLFIND} ocamldep PP ...
  • 3 votes
     answers
     views

    使用ocamlbuild将选项传递给camlp4

    我_887850_本地支持ocamlfind来简化我的项目的构建过程 . 文件 foo.ml 依赖于使用camlp4宏的条件编译 . _tags 文件包含以下内容: <foo.ml>: package(camlp4.macro), syntax(camlp4o) 这很好用,但我无法将选项传递给camlp4 . 不使用ocamlbuild ocamlfind自动化,命令行将是这样的...
  • 3 votes
     answers
     views

    使用Ocamlbuild使用配置文件信息构建本机可执行文件

    如何使用Ocamlbuild构建启用的配置文件信息?似乎 -p 在那里不起作用 . 现在,我使用 ocamlopt . 例如, $ ocamlfind ocamlopt -c -p -thread -package core test.ml $ ocamlfind ocamlopt -p -o test -thread -package core -linkpkg test.cmx 怎么做同样...
  • 4 votes
     answers
     views

    ocamlbuild:使用选项构建插件

    我正在尝试编写一个ocamlbuild插件(myocamlbuild.ml),它将使用另一个文件中的定义 . 我有很多定义,我想在几个构建插件中使用,我想把它们放在自己的文件中 . 我尝试运行ocamlbuild两次,一次使用-no-plugin只是为了构建插件,例如 ocamlbuild -no-plugin myocamlbuild.cmo 之后又一次 ocamlbuild actual-ta...
  • 3 votes
     answers
     views

    用ocamlbuild构建库,用ocamlfind安装它 - 什么是最佳实践?

    我正在使用 ocamlbuild 通过 mylib.mllib 文件编译OCaml库,该文件列出了包含库的模块 . 之后我想使用 ocamlfind 安装库文件 . 与使用 ocamlbuild 构建的二进制文件不同,所有库文件都在 _build 目录中 . 是使用类似的东西安装它们的正确方法 ocamlfind install META _build/a.cma _build/a.cmxa .....
  • 4 votes
     answers
     views

    绿洲捡起错误的ocamlbuild

    我尝试使用Opam提供的Ocaml版本编译Ocaml项目 . 我的ocamlbuild,ocamlfind和绿洲似乎没问题: /Users/fred/.opam/4.02.1/bin/ocamlbuild dhcp-182-73:compil fred$ which ocamlfind /Users/fred/.opam/4.02.1/bin/ocamlfind dhcp-182-73:compi...
  • 1 votes
     answers
     views

    与ocamlbuild的可选依赖项

    我有一个OCaml项目,目前使用OCamlMake构建 . 我对当前的构建系统不满意,因为它将所有构建工件保留在与源文件相同的目录中,此外还需要手动指定模块之间的依赖关系顺序 . 我想切换到不受这些问题影响的构建系统 . 我决定试试Oasis,但遇到了问题 . 问题产生于项目以非常具体的方式建造的事实 . 它支持几种不同的数据库后端(PostgreSQL,MySQL,SQLite) . 目前,要编...
  • 1 votes
     answers
     views

    使用ocamlmktop和ocamlbuild

    我有一个使用ocamlbuild成功构建的项目 . 但是,我还想通过一个简单的方法从不同的模块通过顶层与项目的各个功能进行交互,但是我使用ocamlmktop的尝试并没有像我想的那样成功 . 我发现除非我手动将.cmi文件放在活动目录中,否则会出现“未绑定模块”错误 . 我目前用来构建的命令是: ocamlfind ocamlmktop -I _build -o my_ocaml -linkpkg...
  • 2 votes
     answers
     views

    OCaml Makefile:没有规则来制作目标

    我正在关注这个OCamlbuild example,因此创建了下面的Makefile: OCB_FLAGS = -use-ocamlfind -I src -I lib OCB = ocamlbuild $(OCB_FLAGS) check: ocamlfind query core async clean: $(OCB) -clean byte: $(OCB) main.byte native...
  • 1 votes
     answers
     views

    OCaml插件的任意类型的接口

    我正在使用ocaml_plugin编写计算器,它能够在运行时评估OCaml表达式 . 这是我的插件界面 . open Ocaml_plugin.Std module type S = sig val f : unit -> float end let univ_constr : (module S) Ocaml_dynloader.Univ_constr.t = Ocaml_dy...
  • 0 votes
     answers
     views

    OCamlbuild以递归方式构建依赖关系

    我正在构建一个使用OCamlbuild作为其构建系统的项目 . 该项目还需要一个库,它也使用OCamlbuild . 该库附带 .mlpack , _tags 和 myocamlbuild.ml 个文件 . 我已将该库作为git子模块包含在我的项目中,该子模块位于从项目根开始的路径 lib/mylib 中 . 我想告诉OCamlbuild以递归方式编译库,就像 Makefile 中的 make -...

热门问题