gpt4 book ai didi

installation - 如何在 (Arch) Linux x86_64 上安装 OCaml 核心库?

转载 作者:行者123 更新时间:2023-12-04 19:04:41 24 4
gpt4 key购买 nike

$ ocaml -version
The OCaml toplevel, version 4.02.1
$ opam --version
1.2.0
$ opam init
$ opam install core

#=== ERROR while installing camlp4.4.02.1+system ==============================#
# opam-version 1.2.0
# os linux
# command sh ./check-camlp4.sh
# path /home/john/.opam/system/build/camlp4.4.02.1+system
# compiler system (4.02.1)
# exit-code 1
# env-file /home/john/.opam/system/build/camlp4.4.02.1+system/camlp4-32324-f0f09f.env
# stdout-file /home/john/.opam/system/build/camlp4.4.02.1+system/camlp4-32324-f0f09f.out
# stderr-file /home/john/.opam/system/build/camlp4.4.02.1+system/camlp4-32324-f0f09f.err
### stdout ###
# ...[truncated]
# 4.02 by switching to a local installation via `opam switch 4.02.1`.
#
# Here are some installation instructions for camlp4 if you obtained OCaml
# via the OPAM binary packages:
#
# http://software.opensuse.org/download.html?project=home%3Aocaml&package=ocaml
#
# * Debian/Ubuntu: sudo apt-get install camlp4-extra
# * RHEL/CentOS/Fedora: sudo yum install ocaml-camlp4
#
### stderr ###
# ./check-camlp4.sh: line 3: camlp4orf: command not foun

我在 opam init 期间对自动完成脚本问题的回答是肯定的.此外,错误的截断部分表明以下内容:

Please install a system-wide version of camlp4. This is necessary since you are using OCaml 4.02.1 and the system compiler switch (which uses your preexisting installation rather than compile one from scratch).

If you cannot install a system-wide camlp4, then you can still use OCaml 4.02 by switching to a local installation via opam switch 4.02.1


# pacman -S camlp4
$ opam install camlp4
$ opam info camlp4
package: camlp4
version: 4.02.1+system
repository: default
homepage: https://github.com/ocaml/camlp4
license: LGPLv2
installed-version: 4.02.1+system [system]

再来一次...
$ opam install core

#=== ERROR while installing herelib.109.35.02 =================================#
# opam-version 1.2.0
# os linux
# command make
# path /home/john/.opam/system/build/herelib.109.35.02
# compiler system (4.02.1)
# exit-code 2
# env-file /home/john/.opam/system/build/herelib.109.35.02/herelib-31366-c61e7b.env
# stdout-file /home/john/.opam/system/build/herelib.109.35.02/herelib-31366-c61e7b.out
# stderr-file /home/john/.opam/system/build/herelib.109.35.02/herelib-31366-c61e7b.err
### stdout ###
# ...[truncated]
# ocamlfind ocamlopt -shared -linkall lib/herelib.cmxa -o lib/herelib.cmxs
# ocamlfind ocamldep -syntax camlp4o -package camlp4.extend -package camlp4.quotations -package camlp4.lib -modules lib/pa_here.mli > lib/pa_here.mli.depends
# ocamlfind ocamlc -c -g -syntax camlp4o -package camlp4.extend -package camlp4.quotations -package camlp4.lib -I lib -o lib/pa_here.cmi lib/pa_here.mli
# + ocamlfind ocamlc -c -g -syntax camlp4o -package camlp4.extend -package camlp4.quotations -package camlp4.lib -I lib -o lib/pa_here.cmi lib/pa_here.mli
# File "lib/pa_here.mli", line 1:
# Error: The files /usr/lib/ocaml/pervasives.cmi
# and /usr/lib/ocaml/camlp4/Camlp4.cmi make inconsistent assumptions
# over interface Pervasives
# Command exited with code 2.
# Makefile:21: recipe for target 'build' failed
### stderr ###
# File "setup.ml", line 232, characters 8-26:
# Warning 3: deprecated: String.set
# Use Bytes.set instead.
# File "setup.ml", line 2385, characters 6-24:
# Warning 3: deprecated: Lazy.lazy_from_fun
# Use Lazy.from_fun instead.
# E: Failure("Command ''/usr/bin/ocamlbuild' lib/herelib.cma lib/herelib.cmxa lib/herelib.a lib/herelib.cmxs lib/pa_herelib.cma lib/pa_herelib.cmxa lib/pa_here
lib.a lib/pa_herelib.cmxs -use-ocamlfind -tag debug' terminated with error code 10")
# make: *** [build] Error 1

我需要切换到不同的编译器吗?
$ opam switch
system C system System compiler (4.02.1)
-- -- 3.11.2 Official 3.11.2 release
-- -- 3.12.1 Official 3.12.1 release
-- -- 4.00.0 Official 4.00.0 release
-- -- 4.00.1 Official 4.00.1 release
-- -- 4.01.0 Official 4.01.0 release
-- -- 4.02.0 Official 4.02.0 release
-- -- 4.02.1 Official 4.02.1 release

最佳答案

您应该从系统编译器切换到 OPAM 的编译器。然后将自动下载和编译编译器的源代码以及所有先决条件。要切换,请使用以下命令:

opam switch 4.02.1

而不是 4.02.1当然,您可以使用任何可用的编译器。

实际错误是由于某种原因(我认为由于滚动发布模型)您有不同版本的 camlp4和 OCaml 编译器,这样他们就不能互相交谈。

关于installation - 如何在 (Arch) Linux x86_64 上安装 OCaml 核心库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28059416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com