Ошибка: несвязанное значение Ppl.manager_alloc_strict - PullRequest
0 голосов
/ 21 сентября 2011

Я только что установил пакет с именем Ppl, вот результат find -name "*ppl.*" в /usr/:

./lib/libppl.so.7.1.0
./lib/libppl.so.7
./lib/libcloog-ppl.so.0
./local/share/man/man3/libppl.3
./local/share/aclocal/ppl.m4
./local/include/ppl.hh
./local/lib/libppl.so
./local/lib/libppl.la
./local/lib/libppl.a
./local/lib/libppl.so.9
./local/lib/libppl.so.9.0.0

Но когда я запускаю следующий код на ocamlc -I /usr/local/lib/ocaml/3.11.2/apron -I /usr/local/lib/ocaml/3.11.2/gmp/ -I /usr/local/lib/ -c file.ml, я получаюошибка Unbound value Ppl.manager_alloc_strict.

open Apron;;
open Mpqf;;
open Format;;

let print_array = Abstract0.print_array;;
let lincons1_array_print fmt x =
  Lincons1.array_print fmt x
;;
let generator1_array_print fmt x =
  Generator1.array_print fmt x
;;

let manpk = Polka.manager_alloc_strict();;
let manbox = Box.manager_alloc ();;
let manoct = Oct.manager_alloc ();;
let manppl = Ppl.manager_alloc_strict();;
...

Кто-нибудь знает, что случилось?Большое спасибо!

1 Ответ

1 голос
/ 21 сентября 2011

Вы показали нам библиотеку, но ничего не касалось интерфейса OCaml с библиотекой - cmx или cmxa для нативной компиляции. Как и комментарий , который я оставил до , сделайте то же самое с пакетом Ppl для OCaml. OCaml взаимодействует не с библиотекой C напрямую (.a, .so), а через скомпилированный интерфейс (файлы cmxa или cmi).

Вы также можете рассмотреть возможность использования системы ocamlbuild. Вы можете пометить модули с внешними зависимостями и заставить систему сборки найти пакет (через ocamlfind или жестко запрограммированный).

...