2013-08-26 11 views
14

Esecuzioneocaml modulo grafico Unbound

open Graphics;; 

in OCaml restituisce un errore, dicendo che è un modulo legato. Eseguirlo nel terminale (ocaml) restituisce la stessa cosa.

Ciò significa che il mio modulo grafico non è stato in qualche modo installato con il pacchetto ocaml? In tal caso, come posso installare il modulo?

Su Fedora.

risposta

15

Il modulo grafico non è pronto per impostazione predefinita. Devi caricarlo manualmente. In primo livello:

$ ocaml 
     OCaml version blahblah 
# #load "graphics.cma";; 
# open Graphics;; 

oppure è possibile specificarlo nella riga di comando:

$ ocaml graphics.cma 
     OCaml version blahblah 
# open Graphics;; 

non so su Fedora, ma se quanto sopra non riesce, la grafica non è realmente installato nel proprio ambiente.

+3

Restituisce un messaggio "Can not find graphics.cma". Suppongo che non sia stato installato con il pacchetto ocaml. Qualche consiglio per me? – Secret

+1

Quindi sospetto che il pacchetto binario OCaml di Fedora non includa alcun modulo grafico. E in realtà era un problema: https://bugzilla.redhat.com/show_bug.cgi?id=468506 Se fossi in te, installerei OCaml includendo la grafica da solo. – camlspotter

+0

Grazie per la risposta - su Ubuntu 10 funziona tutto bene e la finestra grafica è aperta! –

31

Questo errore appare spesso anche su Mac OS X. Con Homebrew questo modulo è disabilitato per impostazione predefinita all'installazione, quindi brew install ocaml non installerà il modulo Grafica, probabilmente a causa della dipendenza XQuartz.

Se si esegue brew info ocaml, verrà indicato che è presente un flag, ovvero --with-x11, che verrà "Installazione con il modulo Grafica". Quindi, per l'installazione/reinstallazione ocaml dovrete eseguire:

brew install Caskroom/cask/xquartz 
brew [re]install ocaml --with-x11 

Infine ricordatevi di controllare che l'istanza di ocaml che esegue è quella in /usr/local/Cellar/objective-caml/x.yy.z[_w]/bin, e se non viene poi anteporre tale URL al tuo PATH variabile di ambiente. Ricorda inoltre di riavviare il computer dopo l'installazione di XQuartz.

+1

Sono venuto qui con questo esatto problema. Questa è una risposta completa IMO e una gioia da leggere. Grazie! – jamescampbell

+0

Non anteporre quel percorso alla tua variabile 'PATH'; usa invece '/ usr/local/opt/ocaml/bin'. Questo percorso non cambierà sugli aggiornamenti di OCaml. – bfontaine

+0

Questa risposta è ottima dopo alcuni minuti con ricerche non riuscite. Funziona ora in modo impeccabile. – sharno