问题描述
我正在尝试使用 opam install graphics
安装图形,但出现以下错误
留言:
$ opam install graphics
The following actions will be performed:
∗ install graphics 5.1.1
↻ recompile ocamlfind 1.9.1 [uses graphics]
↻ recompile base-bytes base [uses ocamlfind]
↻ recompile ounit2 2.2.4 [uses base-bytes]
↻ recompile ANSITerminal 0.8.2 [uses base-bytes]
===== ∗ 1 ↻ 4 =====
Do you want to continue? [Y/n] y
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><> ?
[ANSITerminal.0.8.2] found in cache
[graphics.5.1.1] found in cache
[ocamlfind.1.9.1] found in cache
[ounit2.2.2.4] found in cache
<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><> ?
[ERROR] The compilation of graphics Failed at "/Users/traviszhang/.opam/opam-init/hooks/sandBox.sh build dune
build -p graphics -j 3 @install".
#=== ERROR while compiling graphics.5.1.1 =====================================#
# context 2.0.8 | macos/x86_64 | ocaml-base-compiler.4.11.1 | https://opam.ocaml.org#7e6a6dcc
# path ~/.opam/cs3110-2021sp/.opam-switch/build/graphics.5.1.1
# command ~/.opam/opam-init/hooks/sandBox.sh build dune build -p graphics -j 3 @install
# exit-code 1
# env-file ~/.opam/log/graphics-9364-8b8a2d.env
# output-file ~/.opam/log/graphics-9364-8b8a2d.out
### output ###
# [...]
# In file included from src/unix/subwindow.c:16:
# src/unix/libgraph.h:17:10: Fatal error: 'X11/Xlib.h' file not found
# #include <X11/Xlib.h>
# ^~~~~~~~~~~~
# 1 error generated.
# cc src/text.o (exit 1)
# (cd _build/default/src && /usr/bin/cc -O2 -fno-strict-aliasing -fwrapv -D_FILE_OFFSET_BITS=64 -D_REENTRANT -g -I /Users/traviszhang/.opam/cs3110-2021sp/lib/ocaml -o text.o -c text.c)
# In file included from src/unix/text.c:16:
# src/unix/libgraph.h:17:10: Fatal error: 'X11/Xlib.h' file not found
# #include <X11/Xlib.h>
# ^~~~~~~~~~~~
# 1 error generated.
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><> ?
┌─ The following actions Failed
│ λ build graphics 5.1.1
└─
╶─ No changes have been performed
我尝试了以下解决方案,但似乎都不起作用:
-
https://github.com/ocaml/graphics/issues/16(运行
export LIBRARY_PATH=/opt/X11/lib
) - 还将
export PKG_CONfig_PATH="$PKG_CONfig_PATH:/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig"
添加到我的 .zshrc 文件中(这在与 1 相同的线程中提到。
当我运行 pkg-config --list-all | grep x11
时,x11 库会弹出,但由于某种原因,垃圾邮件在尝试安装图形时似乎找不到它。任何建议都会有所帮助!
这是我当前的计算机配置:
- macOS BigSur 版本 11.2.1
- Ocaml 编译器 4.11.1
更新:
此问题已在以下线程 (https://github.com/ocaml/graphics/pull/36#issuecomment-846827032) 中提出,并将在新的图形版本中更新。
解决方法
让图形包在 macOS 上运行的最简单方法是安装并正确设置 homebrew,之后你就可以了
opam depext --install graphics
它应该通过自制软件(xquartz
和 xorgproto
)安装系统依赖项并安装 OCaml 库。