Q:

Error: Unbound value Ppl.manager_alloc_strict

I just installed a package called Ppl, here is the result of find -name "*ppl.*" under /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

But when I run the following code by 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, I got an error 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();;
...

Does anyone know what happened? Thank you very much!

A:

You've showed us the library, but not anything regarding the OCaml interface to the library -- cmx or cmxa for native compilation. Just as the comment I left prior, do the same thing with where Ppl package for OCaml is. OCaml is not interfacing with the C library directly (.a, .so), but through a compiled interface (cmxa or cmi files).
You might also consider using the ocamlbuild system. You can tag modules with external dependencies, and have the build system find the package (via ocamlfind, or hard-coded).

