Emacs [Ocaml]:Build lexer.mll
我通过安装OcamlWinPlus及其组件Emacs来使用Ocaml。在我的源代码中,我有两个文件main.ml和lexer.mll,其中包含以下代码: main.ml:Emacs [Ocaml]:Build lexer.mll,emacs,ocaml,interpreter,Emacs,Ocaml,Interpreter,我通过安装OcamlWinPlus及其组件Emacs来使用Ocaml。在我的源代码中,我有两个文件main.ml和lexer.mll,其中包含以下代码: main.ml: open Format let print data = List.iter (fun l -> printf "%s@." (String.concat " " l)) data let () = match List.tl (Array.to_list Sys.argv) with | [filena
open Format
let print data =
List.iter (fun l -> printf "%s@." (String.concat " " l)) data
let () =
match List.tl (Array.to_list Sys.argv) with
| [filename] ->
let ch = open_in filename in
let data = Lexer.lex [] (Lexing.from_channel ch) in
close_in ch;
print data
| _ -> eprintf "killer <file>@."; exit 1
在emacs中运行Ocaml时出现问题:
Error: Unbound module Lexer
请帮我修复它您未能描述您在这里尝试的内容。。。我猜您在编译
main.ml
之前没有编译Lexer
,尽管这取决于Lexer
。你应该做的是:
- 使用
将ocamlex
转换为lexer.mll
:lexer.ml
ocamlex-lexer.mll
- 编译
:lexer.ml
ocamlc lexer.ml
- 然后编译
main.ml
要使此过程自动化,您应该使用一些构建工具,如
make
,ocamlbuild
,omake
,等等。无论如何,您应该阅读一本好的OCaml入门书,了解如何将OCaml及其工具与多个源文件一起使用。您没有描述您在这里尝试的内容。。。我猜您在编译main.ml
之前没有编译Lexer
,尽管这取决于Lexer
。你应该做的是:
- 使用
将ocamlex
转换为lexer.mll
:lexer.ml
ocamlex-lexer.mll
- 编译
:lexer.ml
ocamlc lexer.ml
- 然后编译
main.ml
要使此过程自动化,您应该使用一些构建工具,如
make
,ocamlbuild
,omake
,等等。无论如何,您应该阅读一本好的OCaml入门书,了解如何将OCaml及其工具与多个源文件一起使用。您没有描述您在这里尝试的内容。。。我猜您在编译main.ml
之前没有编译Lexer
,尽管这取决于Lexer
。你应该做的是:
- 使用
将ocamlex
转换为lexer.mll
:lexer.ml
ocamlex-lexer.mll
- 编译
:lexer.ml
ocamlc lexer.ml
- 然后编译
main.ml
要使此过程自动化,您应该使用一些构建工具,如
make
,ocamlbuild
,omake
,等等。无论如何,您应该阅读一本好的OCaml入门书,了解如何将OCaml及其工具与多个源文件一起使用。您没有描述您在这里尝试的内容。。。我猜您在编译main.ml
之前没有编译Lexer
,尽管这取决于Lexer
。你应该做的是:
- 使用
将ocamlex
转换为lexer.mll
:lexer.ml
ocamlex-lexer.mll
- 编译
:lexer.ml
ocamlc lexer.ml
- 然后编译
main.ml
要使这个过程自动化,您应该使用一些构建工具,例如
make
,ocamlbuild
,omake
,等等。无论如何,您应该阅读一本好的OCaml入门书,学习如何将OCaml及其工具用于多源文件。在编译main.ml时,我遇到了另一个错误:文件“main.ml”,第1行:错误:链接main.cmo时出错:引用未定义的全局“Lexer”ocamlc-c main.ml
,然后ocamlc-o your.exe Lexer.cmo main.cmo
。请阅读手册!谢谢你,我用这种方式构建了我的源代码:ocamlc-clexer.mlocamlc-cmain.mlocamlc-o taka lexer.mlmain.mlocamlrun taka非常感谢你。我可以按照你的方式构建我的源代码。你能给我推荐一本学习Ocaml语言的好书吗?编译main.ml时,我遇到了另一个错误:文件“main.ml”,第1行:错误:链接main.cmo时出错:引用未定义的全局“Lexer”ocamlc-cmain.ml
,然后ocamlc-o your.exe Lexer.cmo main.cmo
。请阅读手册!谢谢你,我用这种方式构建了我的源代码:ocamlc-clexer.mlocamlc-cmain.mlocamlc-o taka lexer.mlmain.mlocamlrun taka非常感谢你。我可以按照你的方式构建我的源代码。你能给我推荐一本学习Ocaml语言的好书吗?编译main.ml时,我遇到了另一个错误:文件“main.ml”,第1行:错误:链接main.cmo时出错:引用未定义的全局“Lexer”ocamlc-cmain.ml
,然后ocamlc-o your.exe Lexer.cmo main.cmo
。请阅读手册!谢谢你,我用这种方式构建了我的源代码:ocamlc-clexer.mlocamlc-cmain.mlocamlc-o taka lexer.mlmain.mlocamlrun taka非常感谢你。我可以按照你的方式构建我的源代码。你能给我推荐一本学习Ocaml语言的好书吗?编译main.ml时,我遇到了另一个错误:文件“main.ml”,第1行:错误:链接main.cmo时出错:引用未定义的全局“Lexer”ocamlc-cmain.ml
,然后ocamlc-o your.exe Lexer.cmo main.cmo
。请阅读手册!谢谢你,我用这种方式构建了我的源代码:ocamlc-clexer.mlocamlc-cmain.mlocamlc-o taka lexer.mlmain.mlocamlrun taka非常感谢你。我可以按照你的方式构建我的源代码。你能给我推荐一本学习Ocaml语言的好书吗。
Error: Unbound module Lexer