Functional programming 如何编译和运行OCaml程序

Functional programming 如何编译和运行OCaml程序,functional-programming,ocaml,Functional Programming,Ocaml,我有两个单独的OCaml文件,如下所示 a.ml let hello str = "hello from" ^ str A.hello "Module B" 和b.ml let hello str = "hello from" ^ str A.hello "Module B" 为了编译和运行,我一个接一个地执行以下操作 ocamlc -c a.ml ocamlc -c b.ml ocamlc -o a.cmo b.cmo 前两个命令运行时没有错误。但是当我执行最后一个命令时,我得到以下

我有两个单独的OCaml文件,如下所示

a.ml

let hello str = "hello from" ^ str
A.hello "Module B"
b.ml

let hello str = "hello from" ^ str
A.hello "Module B"
为了编译和运行,我一个接一个地执行以下操作

ocamlc -c a.ml
ocamlc -c b.ml
ocamlc -o a.cmo b.cmo
前两个命令运行时没有错误。但是当我执行最后一个命令时,我得到以下错误

> File "_none_", line 1: Error: Error while linking b.cmo: Reference to
> undefined global `A'


如何修复此问题?

ocamlc-o myprogram.byte a.cmo b.cmo可能<代码>人工ocamlc可能有用。

ocamlc-o myprogram.byte a.cmo b.cmo
可能吗<代码>人工ocamlc可能有用。

ocamlc-o myprogram.byte a.cmo b.cmo
可能吗<代码>人工ocamlc可能有用。

ocamlc-o myprogram.byte a.cmo b.cmo
可能吗<代码>man ocamlc可能有用。

如何运行生成的字节文件?它是一个可执行文件,与正常情况一样。如果您没有注意到,
a.cmo
被设置为输出文件,而不是要链接的附加文件。我在运行时在终端中没有收到输出。/myprogram.byte为什么?您没有打印任何内容。如果指定
-o a.cmo
,它将写入文件
a.cmo
,同样
man-ocamlc
-o
有一个强制参数。如果需要默认的exec名称,请不要指定
-o
。如何运行生成的字节文件?它是一个可执行文件,与正常情况一样。如果您没有注意到,
a.cmo
被设置为输出文件,而不是要链接的附加文件。我在运行时在终端中没有收到输出。/myprogram.byte为什么?您没有打印任何内容。如果指定
-o a.cmo
,它将写入文件
a.cmo
,同样
man-ocamlc
-o
有一个强制参数。如果需要默认的exec名称,请不要指定
-o
。如何运行生成的字节文件?它是一个可执行文件,与正常情况一样。如果您没有注意到,
a.cmo
被设置为输出文件,而不是要链接的附加文件。我在运行时在终端中没有收到输出。/myprogram.byte为什么?您没有打印任何内容。如果指定
-o a.cmo
,它将写入文件
a.cmo
,同样
man-ocamlc
-o
有一个强制参数。如果需要默认的exec名称,请不要指定
-o
。如何运行生成的字节文件?它是一个可执行文件,与正常情况一样。如果您没有注意到,
a.cmo
被设置为输出文件,而不是要链接的附加文件。我在运行时在终端中没有收到输出。/myprogram.byte为什么?您没有打印任何内容。如果指定
-o a.cmo
,它将写入文件
a.cmo
,同样
man-ocamlc
-o
有一个强制参数。如果希望默认的exec名称不指定
-o
。请参阅[此问题的接受答案][1],这里有一个完整的示例。[1] :可能重复参见[此问题的接受答案][1],有一个完整的示例。[1] :可能重复参见[此问题的接受答案][1],有一个完整的示例。[1] :可能重复参见[此问题的接受答案][1],有一个完整的示例。[1] :可能的副本