在 OCaml 中编译并运行

2023-12-27

我是 OCaml 新手,我想知道如何将 ocaml 代码写入文件,然后编译它以在需要时运行它。 现在我通过输入使用 OCamlocaml在 Mac 或 Linux 终端中并编写代码,但是当我完成并关闭软件时,我会丢失所有工作。


有很多选择,但最简单的一个(据我看来)是使用ocamlbuild http://caml.inria.fr/pub/docs/manual-ocaml/ocamlbuild.html。如果您的代码在文件中program.ml, then

ocamlbuild program.native

会将您的程序编译为本机二进制文件,以便您可以像下面这样简单地运行它:

./program.native

还有一个快捷方式允许您一次性编译和运行程序:

ocamlbuild program.native --

您可以在之后将参数传递给您的程序-- sign.

如果您的程序包含多个文件,那不是问题,因为ocamlbuild将扫描它,并以正确的顺序自动构建所有依赖项。

如果您的程序需要外部库,那么您可以使用-pkg or -pkgs选项。像这样:

ocamlbuild -pkg lwt program.native
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OCaml 中编译并运行 的相关文章

  • 如何运行 OCaml + Core 脚本?

    我正在尝试 Real World OCaml 这本书 它讨论了安装 OPAM 然后是 OCaml 和 Jane Street Core 我按照书中的说明正确加载了 utop 以便它自动加载 Core 没有 Core 我可以简单地运行通用 O
  • OCaml 中的“[< >]”是什么意思?

    我看过一些源代码 let rec parse document parser lt len parse int32 st gt gt parse list ES take int32 len st lt gt gt malformed pa
  • 程序程序员的功能代码片段列表? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 修复 OCaml 中的数据类型

    Haskell 中的以下数据类型如何用 OCaml 或 SML 表示 newtype Fix f In f Fix f 我已经在邮件列表上回答了这个问题 https sympa inria fr sympa arc caml list 20
  • F# 与 OCaml:堆栈溢出

    我最近发现了一个关于适合 Python 程序员的 F http combiol org fs FSUG FS4PPv2 pptx 看完之后 我决定自己实现一个 蚂蚁谜题 的解决方案 有一只蚂蚁可以在平面网格上走动 蚂蚁一次可以向左 向右 向
  • 如何将模块与 js_of_ocaml 一起使用?

    我目前正在开发一个用 OCaml 编写并使用 js of ocaml 编译为 javascript 的网站项目 只要我使用该命令只有一个源文件 它就可以很好地工作ocamlfind ocamlc package js of ocaml pa
  • 类型注释被推断的表达式类型覆盖

    在 Scala 编程语言中 假设我将使用更广泛的类型注释表达式并提供一个狭窄的值 我的程序将被拒绝 scala gt def x A A 8
  • OCaml 中的多态性 - 特别、参数、包含/子类型

    我在理解不同类型的多态性时遇到问题 特别是关于 OCaml 的多态性 我知道多态性允许 OCaml 中表示为 a 的多种类型 但我不明白不同类型的多态性是什么 如果有人能用相对低级的语言给我解释那就太棒了 临时 参数 包含 子类型 这是一个
  • 使用 Opam 管理项目依赖关系

    我是 OCaml 的新手 我使用过的其他语言 例如 Scala Clojure Node js 上的 Javascript 都有包管理器 允许人们以干净的状态启动项目 该项目具有一组已声明的已知版本的依赖项 我正在尝试与 Opam 做类似的
  • llvm OCaml 绑定

    我正在研究 llvm OCaml 绑定 我通过 opam 安装了 llvm 包 opam install llvm 当我在 utop 中使用 llvm 时 出现以下错误 require llvm Error The external fun
  • 是否可以在 OCaml 解释器中使用箭头键?

    每次我在解释器中使用这些键时 我都会不断出现如下符号 D C 我在 ZSH 中使用 Linux Mint 12 但是在 Ubuntu 中使用 bash 得到了相同的结果 另外 ssh 中也是同样的情况 库存 OCaml 顶层没有内置行编辑功
  • 如何从ocaml列表中获取子列表

    我正在查看列表文档 图书馆好像没有提供sublist功能 我正在尝试从中获取元素列表i to j 现在我必须把它写成 let rec sublist list i j if i gt j then else List nth list i
  • 在哪里可以找到 OCaml Option 模块?

    我的意思是这个模块 Option http ocaml lib sourceforge net doc Option html 我找不到它 open Option给我Error Unbound module Option并且没有 optio
  • OCaml 在运行时编译和加载

    我正在尝试实现类似的目标eval 在 OCaml 中 我有一个string我想从中得到一个 OCaml 函数 目前我正在做以下事情 我将字符串转储到new ml并编译文件 Compile implementation Format std
  • 类型变量和局部抽象类型有什么区别?

    我试图理解的目的局部抽象类型在 OCaml 中 局部抽象类型与类型变量有何不同 看来他们有相同的行为 Type variable let f x a a x val f a gt a
  • 错误:无法安全地评估递归定义模块的定义

    我很想了解为什么会发生此错误以及解决该错误的最佳方法是什么 我有几个文件types ml and types mli它定义了一个变体类型value可以是许多不同的内置 OCaml 类型 float int list map set 等 由于
  • 使用只有一个元组值的变体类型构造函数

    type foo Foo of int int let t 1 2 Foo t Error The constructor Foo expects 2 argument s but is applied here to 1 argument
  • 如何使用 opam 安装特定版本的 ocaml 编译器

    如何使用 opam 或其他包管理器 安装特定版本的 ocaml 编译器 和兼容包 我快速浏览了 opam 文档 但没有找到相关信息 我需要 ocaml 编译器 最好是本机代码编译器 来构建 unison 一个文件同步软件 我需要使用相同版本
  • OCaml 文字负数?

    我在学 这是我觉得奇怪的事情 let test treeways x match x with when x lt 0 gt 1 when x gt 0 gt 1 gt 0 如果我这样称呼它 test threeways 10 我会得到类型
  • 将“列表”转换为“集合”?

    OCaml 真的没有从列表转换为集合的函数吗 如果是这样的话 是否可以制作一个通用函数list to set 我尝试制作一个多态集 但没有成功 基本问题 列表可以包含任何类型的元素 集合 假设你的意思是Set http caml inria

随机推荐

  • 回滚TFS中的单个文件

    如果我在源代码管理中查看单个文件的历史记录 我可以右键单击列表中的更改集 然后选择 回滚整个更改集 这会回滚我在该签入期间签入的所有其他文件还是仅回滚我当前正在查看的文件 如果它确实回滚所有文件 是否有办法仅回滚所选文件 Thanks 如前
  • 如何将外来编码字符写入文本文件

    我正在遍历文件夹并收集文档名称和一些其他数据以加载到数据库中 import os text file open Output txt w dirName D for nextDir subDir fileList in os walk di
  • 使用代码,如何更新气流变量?

    我需要以编程方式更新在 Airflow 中创建的变量 但我找不到如何使用代码执行此操作的答案 我已经用以下代码检索了我的变量 column number Variable get column number 在函数结束时 我想将column
  • Android中MediaStore中存储图像的问题

    我编写了一段代码 通过java程序将新图像插入到Android设备图像库中 请找到下面的代码 ContentValues values new ContentValues values put Images Media TITLE titl
  • 是 C# 6 吗? (猫王op)线程安全?如果是这样,怎么办?

    提前道歉 这个问题来自一位试图学习高级 C 的硬核 未经改革的 C 开发人员 考虑以下 if myUserDefinedObject null myUserDefinedObject ToString 这显然不是线程安全的 另一方面 我看过
  • 将 Haskell 中的命题逻辑扩展到模态逻辑

    我用 Haskell 编写了一些代码来建模命题逻辑 data Formula Prop propName String Neg Formula Conj Formula Formula Disj Formula Formula Impl F
  • 如何求这个数组的和?

    我想对所有 建议 字段进行求和 请问我该怎么做呢 我用的是PHP Array 0 gt Array Id gt 4 Suggested gt 1322 proximite r gt 30924 8470655462 1 gt Array I
  • 在 angularjs 中对表的行进行排序或重新排列(拖放)

    我想要具有重新排列表中行的功能 使用拖放对行进行排序 并且模型中行排列的索引也应该改变 我怎样才能做类似的事情 http jsfiddle net tzYbU 1162 http jsfiddle net tzYbU 1162 使用角度指令
  • 如何解决 找不到方法:System.Collections.Generic.IList`1

    目前我正在尝试在 macOS 上开发 C ASP NET MVC Web 应用程序 我在 NET 6 0 402 上运行 当我跑步时dotnet ef update database要更新我的数据库 我收到此错误 未找到方法 System
  • 更改绑定值,而不是绑定本身

    我有一个包含 DependencyProperty MyProperty 的 WPF UserControl DependencyProperty 绑定到 DataContext 中的属性 现在在 UserControl 中我想更改绑定属性
  • Google Directions API 查询限制

    The url http code google com intl lv apis maps documentation directions http code google com intl lv apis maps documenta
  • 为什么给定的语法在mysql中有效?

    In 另一个答案 https stackoverflow com a 22750898 251311我发现了一个奇怪的语法 SELECT FROM articles WHERE date gt UNIX TIMESTAMP DATE NOW
  • pydev notests 测试运行

    似乎是一个愚蠢的问题 但我一直无法弄清楚 我想使用 eclipse pyunit 来运行我的所有测试 我已将测试运行程序配置为鼻子测试运行程序 现在我想让 pyunit 使用鼻子 您可以右键单击文件夹 文件 然后选择 运行为 gt Pyth
  • Redux 动机:突变和异步性示例

    为了理解 Redux 的动机 我阅读了官方链接https redux js org introduction motivation https redux js org introduction motivation以及这个 stackov
  • Android CMake 使用预构建 .a 库

    我对 CMake 完全陌生 并且共同使用 NDK 我想办法编写 JNI 接口并使用 2 个属于 C 库一部分的方法 我将此库编译为静态库并获得了 a 文件 现在我有点迷失了 因为我不明白如何告诉 Android Studio 在尝试查找被调
  • 使用内联 Rcpp 从全局环境中读取变量?

    我按照 Rcpp 介绍 Vignette 中的示例 尝试使用内联 f lt cxxfunction signature plugin Rcpp body Environment global Environment global env s
  • Node.js 和 Amazon S3:如何迭代存储桶中的所有文件?

    是否有适用于 Node js 的 Amazon S3 客户端库允许列出 S3 存储桶中的所有文件 最广为人知的aws2js https github com SaltwaterC aws2js and knox https github c
  • 为什么 Bootstrap 5.2.1 在分页 Datatable 时会导致模态隐藏?

    我有一个数据表 https datatables net 在 bootstrap v5 2 1 模式中 当我打开模式并尝试翻阅数据时 模式会立即隐藏自身 bootstrap v5 2 0 不会出现这种情况 为什么会发生这种情况 引导模式中数
  • 如何访问存储在 Hash 中的数据

    我有这个代码 coder JSON XS gt new gt utf8 gt pretty gt allow nonref perl coder gt decode json 当我写作时print perl变量显示为 HASH 0x9e04
  • 在 OCaml 中编译并运行

    我是 OCaml 新手 我想知道如何将 ocaml 代码写入文件 然后编译它以在需要时运行它 现在我通过输入使用 OCamlocaml在 Mac 或 Linux 终端中并编写代码 但是当我完成并关闭软件时 我会丢失所有工作 有很多选择 但最