简体   繁体   中英

Unbound module Graphics Ocaml on Linux mint

i have read multiple identical problem but answers dont fix it. The OCaml toplevel, version 4.11.0+dev0-2019-10-18 opam list

# Packages matching: installed
# Name              # Installed # Synopsis
base-bigarray       base
base-threads        base
base-unix           base
conf-libX11         1           Virtual package relying on an Xlib system instal
conf-pkg-config     1.1         Virtual package relying on pkg-config installati
dune                2.4.0       Fast, portable, and opinionated build system
dune-configurator   2.4.0       Helper library for gathering system configuratio
dune-private-libs   2.4.0       Private libraries of Dune
graphics            5.1.0       The OCaml graphics library
ocaml               4.10.0      The OCaml compiler (virtual package)
ocaml-base-compiler 4.10.0      Official release 4.10.0
ocaml-config        1           OCaml Switch Configuration

opam install graphics [NOTE] Package graphics is already installed (current version is 5.1.0).

ocamlfind query -predicates native -a-format graphics

ocamlfind: Package `graphics' not found
me@2020:~$   /home/ivg/.opam/fresh/lib/ocaml/graphics.cmxa
bash: /home/ivg/.opam/fresh/lib/ocaml/graphics.cmxa: Aucun fichier ou dossier de ce type

ocamlfind ocamlopt -package graphics

ocamlfind: Package `graphics' not found

ls ocamlc -where /graphics*

ls: impossible d'accéder à '/usr/local/lib/ocaml/graphics*': Aucun fichier ou dossier de ce type

sudo apt install libx11-dev

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
libx11-dev est déjà la version la plus récente (2:1.6.4-3ubuntu0.2).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 8 non mis à jour.

I dont understand what is wrong, it seems to be installed but it cant use it properly?

ocamlc graphics.cma test1.ml -o test1

File "test1.ml", line 3, characters 5-13:
3 | open Graphics;;
         ^^^^^^^^
Error: Unbound module Graphics

From https://caml.inria.fr/ :

Since OCaml 4.09, the graphics library is distributed as an external package.

Hence you have to specify to ocamlc where to find the corresponding cma file using the -I option and ocamlfind :

ocamlc -I $(ocamlfind query graphics) graphics.cma test1.ml -o test1

Using utop you will have to start with the directive #require "graphics";; before doing open Graphics;;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM