[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | jehenrik <jehenrik@y...> |
| Subject: | [Caml-list] darwin link suckage eg: pcre |
Can somebody who understands Darwin linking tell me why my ocaml pcre does not work like I think it should? I build pcre 3.9. Install. Fine. I build pcre-ocaml 4.28. It installs in /usr/local/lib/ocaml/contrib. Good enough. After the install, I have to manually ranlib libpcre_stubs.a because the directory has changed. Fine. The example programs, pcregrep et al, link fine against the install. Now I try to build a toplevel: > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocamlmktop -ccopt > -L/usr/local/lib/ocaml/contrib -o ocaml_pcre pcre.cma > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocaml_pcre > Objective Caml version 3.06 > > # open Pcre;; > Unbound module Pcre > # Pcre.regexp;; > Unbound value Pcre.regexp The toplevel executable does contain the C stubs: > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % nm ocaml_pcre > . > . > . > 00002438 T _pcre_isspace_wrapper OTOH, I can't seem to see them even if I load pcre.cmo: > # #load "lib/pcre.cmo";; > # Pcre;; > Unbound constructor Pcre > # Pcre.regexp;; > Unbound value Pcre.regexp > # regexp;; > Unbound value regexp I can see them if I ignore the .mli file and load all the symbols into the top namespace: > # #use "lib/pcre.ml";; > exception BadPattern of string * int > exception InternalError of string > . > . > . > # regexp "[a-z]";; > - : regexp = <abstr> > # Of course this isn't what I want, it's just duct tape. Now I have a fix which I don't understand either. I change > ifndef OCAML_LIB_INSTALL > OCAML_LIB_INSTALL := $(OCAMLLIBPATH) > JH was $(OCAMLLIBPATH)/contrib in OcamlMakefile, reinstall, and everything works perfect: > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocamlmktop > pcre.cma -o ocaml_pcre > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocaml_pcre > Objective Caml version 3.06 > > # open Pcre;; > # So I have a workaround, but I would like to know what the problem is so that I don't repeat whatever error is here with my own code. Thanks. Jeff Henrikson ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners