我使用emacs和tuareg模式,并且我总是在emacs里打开ocaml repl。我想知道是否有一种方法可以从repl内编译基本的OCaml测试文件,因此我不必将编译作为系统命令运行。从OCaml内部编译repl
4
A
回答
1
据我所知,没有,但你可以很容易地从emacs内运行编译。
如果使用M-x compile
命令(C-c C-c
使用tuareg mode),编辑在Emacs中运行“编译模式”,这是相当不错的工作。特别是,如果出现编译错误(M-x goto-next-error
或“C-x`”),它允许您直接跳转到代码中的错误位置。
使用编译命令,您可以选择(shell)命令来运行编译。您可以直接调用ocaml编译器(通常为ocamlc -c foo.ml
),或者使用ocamlfind
来方便使用外部库进行编译,甚至可以使用make
或ocamlbuild
来为您自动编译大部分编译。通常,如果您有一个使用不同源文件的小项目,使用main.ml
文件,ocamlbuild main.byte
将执行从其生成可执行文件的工作。
编辑:当然,您可以使用Sys.command
函数从顶级内部调用系统命令。但我没有看到这一点。
1
“repl”是指“读取评估打印循环”,例如您可能已经在Emacs中运行run-caml
。
有一个Emacs命令compile
用于编译,无论你在做什么或正在编辑的文件。它通常与C-C C-C绑定,但似乎不在我的inf-caml版本中。尽管如此,你可以将它绑定到任何方便的序列(可能不是C-c C-c,因为它用于中断OCaml顶层)。
您可以更改由compile
启动的命令(默认为make -k
)。您的命令行应保留在Emacs会话中。如果你不喜欢它在会话之间丢失,写一个Makefile使默认命令成为正确的命令。这是最简单的方法。
相关问题
- 1. OCaml的异步编译
- 2. OCaml + Menhir编译/写入
- 3. OCAML编译错误Out_of_memory
- 4. ocaml的编译器文档
- 5. 编译多个Ocaml文件
- 6. OCaml中的条件编译
- 7. 剖析OCaml的编译器
- 8. 从Emacs内部编译程序?
- 9. OCaml-Wodi第2部分:编译使用什么安装
- 10. 使用它编译C库和OCaml的exe,全部使用ocamlfind
- 11. ocaml的 - 编译器和手动
- 12. OCaml编译器检查向量长度
- 13. OCAML编译错误在哪里?
- 14. 编译时检测OCaml版本C
- 15. 在OCAML Unison源编译错误
- 16. 失败编译的OCaml的WebSocket
- 17. OCaml模块的单独编译
- 18. OCaml的编译错误与ocamlfind
- 19. ocaml编译过程的逻辑
- 20. 反编译OCaml字节代码文件
- 21. Ocaml代码编译,但不与顶层
- 22. 编译,GMP的错误消息,ocaml的
- 23. 在记事本++中编译ocaml
- 24. 编译linux中的z3 ocaml绑定
- 25. OCAML模块类型和模块编译
- 26. 如何编译ocaml图形窗口cygwin
- 27. 从Python内编译java
- 28. 从OCaml到C编译器构建的书建议
- 29. AngularJS在部分内部的循环内部编译内部模板
- 30. 静态内部类编译结果
这听起来像你也可能想要编译的文件加载到顶层?您可以使用其他参数重新启动顶层,也可以使用'#load“文件来包含它。 – nlucaroni 2010-10-27 20:42:18