Ocaml не может найти Labltk - PullRequest
0 голосов
/ 01 мая 2019

Я работаю над стабильной версией Debian и установил ocaml и opam из репозиториев Debian.Я пытаюсь следующий код из здесь :

#directory "+labltk"
#load "labltk.cma"

let () =
  let top = Tk.openTk() in
  Wm.title_set top "Tk-OCaml Example";
  let label = Label.create ~text:"There have been no clicks yet" top in
  let b =
    Button.create
        ~text:"click me"
        ~command:(fun () -> Tk.closeTk (); exit 0)
        top
  in
  Tk.pack [Tk.coe label; Tk.coe b];
  Tk.mainLoop ();
;;

Однако я получаю следующую ошибку:

$ ocaml simplewin.ml
Cannot find file labltk.cma.
File "simplewin.ml", line 5, characters 12-21:
Error: Unbound module Tk

У меня установлен labltk модуль:

$ opam list labltk
# Available packages for system:
labltk  8.06.0  OCaml interface to Tcl/Tk, including OCaml library explorer OCamlBrowser

Где проблема и как ее можно решить?Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 01 мая 2019

Labltk больше не распространяется по компилятору начиная с OCaml 4.02. Следовательно,

#directory "+labltk";;
#load "labltk.cma";;

- неправильная команда: вы должны использовать

#require "labltk";;

РЕДАКТИРОВАТЬ: У меня работает следующий код:

#require "labltk";;                                                
let () =
  let top = Tk.openTk() in
  Wm.title_set top "Tk-OCaml Example";
  let label =
    Label.create ~text:"There have been no clicks yet" top in
  let b =
    Button.create
        ~text:"click me"
        ~command:(fun () -> Tk.closeTk (); exit 0)
        top
  in
  Tk.pack [Tk.coe label; Tk.coe b];
  Tk.mainLoop ();
;;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...