如何在Standard中编译多个文件?我有两个文件。
file1.sml
(* file1.sml *)
datatype fruit = Orange | Apple | None和file2.sml
(* file2.sml *)
datatype composite = Null | Some of fruit因此,正如您所看到的,file2.sml正在使用来自file1.sml的东西。我怎样才能让这个东西编译呢?
我正在使用mosmlc.exe并在编译mosmlc file2.sml (如这个问题)时:
(* file2.sml *)
use "file1.sml";
datatype composite = Null | Some of fruit我得到:
! use "file1.sml";
! ^^^
! Syntax error.那么,如何处理多个文件呢?
发布于 2016-04-29 21:39:56
您可以在莫斯科ML业主手册中阅读更多内容,但在特定情况下,下面的命令应该可以工作,甚至不必在源代码中使用use:
mosmlc -toplevel file1.sml file2.sml使用结构模式
当您想将代码组织到结构中时,可以使用-structure标志mosmlc。例如,给定以下文件:
Hello.sml
structure Hello =
struct
val hello = "Hello"
endWorld.sml
structure World =
struct
structure H = Hello
val world = H.hello ^ ", World!"
endmain.sml
fun main () =
print (World.world ^ "\n")
val _ = main ()现在您可以获得一个名为main的可执行文件,如下所示:
mosmlc -structure Hello.sml World.sml -toplevel main.sml -o main然后运行它:
$ ./main
Hello, World!结构模式要求文件的名称与包含的结构重合,就像Java类和文件必须具有相同的名称一样。您还可以使用包含签名的.sig文件。
https://stackoverflow.com/questions/36947466
复制相似问题