首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OCaml中的“错误:未绑定模块”

OCaml中的“错误:未绑定模块”
EN

Stack Overflow用户
提问于 2018-01-02 10:10:47
回答 2查看 23.2K关注 0票数 21

下面是一个使用库Cohttp的简单示例:

代码语言:javascript
复制
open Lwt
open Cohttp
open Cohttp_lwt_unix

let body =
  Client.get (Uri.of_string "http://www.reddit.com/") >>= fun (resp, body) ->
  let code = resp |> Response.status |> Code.code_of_status in
  Printf.printf "Response code: %d\n" code;
  Printf.printf "Headers: %s\n" (resp |> Response.headers |> Header.to_string);
  body |> Cohttp_lwt.Body.to_string >|= fun body ->
  Printf.printf "Body of length: %d\n" (String.length body);
  body

let () =
  let body = Lwt_main.run body in
  print_endline ("Received body\n" ^ body)

我正试着编译它

代码语言:javascript
复制
 ocaml my_test1.ml

错误:

错误:未绑定模块Lwt

如何在我的应用程序中实际包含/要求模块Lwt?

更新

另外:

代码语言:javascript
复制
$ ocamlbuild
bash: ocamlbuild: command not found

但是:

代码语言:javascript
复制
$ opam install ocamlbuild
[NOTE] Package ocamlbuild is already installed (current version is
       0.12.0).

代码语言:javascript
复制
$ opam install ocamlfind
[NOTE] Package ocamlfind is already installed (current version is
       1.7.3-1).

代码语言:javascript
复制
$ ocamlfind
bash: ocamlfind: command not found

找到和建屋在哪里?

update2

代码语言:javascript
复制
$ ocamlfind ocamlc -package lwt -c my_test1.ml 
 File "my_test1.ml", line 2, characters 5-11:
 Error: Unbound module Cohttp
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-02 17:31:33

根据您的需要,您有几种选择。

1)如果您想为二进制文件创建一个完整的项目,我建议查看jbuilder。下面是一个非常好的指南,它逐步解释了环境/项目配置:OCaml治疗不耐烦者

2)另一种选择是直接编译二进制文件,就像您试图做的那样:

代码语言:javascript
复制
ocamlbuild -pkg lwt -pkg cohttp-lwt-unix my_test1.native

注意,您需要一个名为my_test1.ml的文件来生成请求的my_test1.native

3)最后,对于快速脚本,我发现可以方便地要求OCaml解释器直接在源文件中加载依赖项。只需将以下内容添加到文件的开头:

代码语言:javascript
复制
#use "topfind";;
#require "lwt";;
#require "cohttp-lwt-unix";;

然后运行ocaml my_test1.ml

希望这会有帮助!)

另外,看看您正在获得的command not found错误,我可以建议您确保您的环境配置正确。“真实世界”( Real )这本书有一个维基页面:https://github.com/realworldocaml/book/wiki/Installation-Instructions

票数 11
EN

Stack Overflow用户

发布于 2020-08-24 19:22:40

试着像这样编译..。

代码语言:javascript
复制
ocamlfind ocamlopt -o my_test \ 
   -linkpkg \ 
   -package lwt,cohttp,cohttp-lwt-unix \
   -thread 
    my_test.ml
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48058993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档