我以前通过opam安装任何OCaml软件包都没有问题.但是我无法安装Cryptokit.
我正在使用命令:
$ opam install cryptokit
Run Code Online (Sandbox Code Playgroud)
并且我收到以下错误消息(我不确定它们的含义,并且找不到有关错误的任何文档):
[ERROR] The compilation of cryptokit.1.9 failed.
Removing cryptokit.1.9.
ocamlfind remove cryptokit
===== ERROR while installing cryptokit.1.9 =====
# opam-version 1.1.0
# os linux
# command make
# path /home/alpha/.opam/system/build/cryptokit.1.9
# compiler system (4.01.0)
# exit-code 2
# env-file /home/alpha/.opam/system/build/cryptokit.1.9/cryptokit-9111-ffb3fd.env
# stdout-file /home/alpha/.opam/system/build/cryptokit.1.9/cryptokit-9111-ffb3fd.out
# stderr-file /home/alpha/.opam/system/build/cryptokit.1.9/cryptokit-9111-ffb3fd.err
### stdout ###
# ...[truncated]
# mv stubs-md5.o src/stubs-md5.o
# ocamlfind ocamlc -ccopt -O -ccopt -DHAVE_ZLIB -c src/stubs-misc.c
# mv stubs-misc.o src/stubs-misc.o
# ocamlfind ocamlc -ccopt -O -ccopt -DHAVE_ZLIB -c src/stubs-rng.c
# mv stubs-rng.o src/stubs-rng.o
# ocamlfind ocamlc -ccopt -O -ccopt -DHAVE_ZLIB -c src/stubs-zlib.c
# + ocamlfind ocamlc -ccopt -O -ccopt -DHAVE_ZLIB -c src/stubs-zlib.c
# src/stubs-zlib.c:19:18: fatal error: zlib.h: No such file or directory
# compilation terminated.
# Command exited with code 2.
### stderr ###
# E: Failure("Command ''/usr/bin/ocamlbuild' src/libcryptokit_stubs.a src/dllcryptokit_stubs.so src/cryptokit.cma src/cryptokit.cmxa src/cryptokit.a src/cryptokit.cmxs -tag debug -classic-display' terminated with error code 10")
# make: *** [build] Error 1
'opam install cryptokit' failed.
Run Code Online (Sandbox Code Playgroud)
# src/stubs-zlib.c:19:18: fatal error: zlib.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
OPAM不会自动安装非OCaml外部库.它超出了此工具的范围.Cryptokit依赖于几个外部库,而zlib就是其中之一.
您必须由您的发行版的软件包管理器或手动安装zlib及其头文件(以及其他库的文件).在许多发行版中,它应该由zlib-dev的名称或类似的东西提供.