我正在尝试安装camlzip(位于opam中的OCaml软件包),但是当我运行opam install camlzip
时,我得到了:
The following actions will be performed:
∗ install camlzip 1.05
=-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[camlzip] Archive in cache
=-=- Processing actions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[ERROR] The compilation of camlzip failed at "make all".
Processing 1/1: [camlzip: ocamlfind remove]
#=== ERROR while installing camlzip.1.05 ======================================#
# opam-version 1.2.2
# os linux
# command make all
# path /home/mttjone/.opam/system/build/camlzip.1.05
# compiler system (4.02.3)
# exit-code 2
# env-file /home/mttjone/.opam/system/build/camlzip.1.05/camlzip-3552-d2d111.env
# stdout-file /home/mttjone/.opam/system/build/camlzip.1.05/camlzip-3552-d2d111.out
# stderr-file /home/mttjone/.opam/system/build/camlzip.1.05/camlzip-3552-d2d111.err
### stdout ###
# ocamlc -g -c -ccopt -g -ccopt -I/usr/local/include zlibstubs.c
### stderr ###
# [...]
# zlibstubs.c:151: warning: comparison between pointer and integer
# zlibstubs.c: In function ‘camlzip_inflateEnd’:
# zlibstubs.c:165: warning: implicit declaration of function ‘inflateEnd’
# zlibstubs.c:165: error: ‘z_stream’ undeclared (first use in this function)
# zlibstubs.c:165: error: expected expression before ‘)’ token
# zlibstubs.c:165: error: invalid operands to binary * (have ‘int *’ and ‘int *’)
# zlibstubs.c:165: error: called object ‘<erroneous-expression>’ is not a function
# zlibstubs.c: In function ‘camlzip_update_crc32’:
# zlibstubs.c:172: warning: implicit declaration of function ‘crc32’
# make: *** [zlibstubs.o] Error 2
=-=- Error report -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following actions failed
∗ install camlzip 1.05
No changes have been performed
=-=- camlzip.1.05 troobleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing. `opam depext camlzip.1.05' may help you find the correct installation for your system.
现在,我认为很明显并没有丢失依赖项,但是我仍然可以建议使用该命令,并且它说我没有丢失任何依赖项。
大概问题出在
zlibstubs.c
文件,但是我不确定是怎么回事。有人可以帮我吗?
最佳答案
TL; DR
opam install depext
opam depext camlzip
说明
opam install depext
命令将安装一个opam
插件,该插件能够安装外部依赖项。它将向depext
工具添加一个opam
命令。opam depext camlzip
将使用系统软件包管理器安装外部依赖项。如果不支持您的软件包管理器,则该命令将失败。在这种情况下,您可以使用opam list --external --required-by=camlzip
获取软件包维护者已知的所有发行版和软件包管理系统的
camlzip
的所有外部依赖关系。根据此信息,您可以推断出要分发的软件包的名称。一旦成功,将这些信息回馈给维护者也是一个好主意。