Le 14/09/2011 18:07, Stéphane Glondu a écrit :
On 09/14/2011 05:56 PM, Romain Bardou wrote:[...] ocamlopt -c -ccopt -fPIC wrapper.c ocamlopt -c mylib.ml ocamlmklib wrapper.o mylib.cmx -o mylib ocamlopt -c main.ml ocamlopt dynlink.cmxa main.cmx -o main CAML_LD_LIBRARY_PATH=. ./main mylib.cmxaBut when Dynlink.load is called, it fails with the following error: error loading shared library: /home/.../mylib.cmxa: invalid ELF header I'm thinking this is because the .cmxa has not been compiled with the -shared option, but I don't know how to tell ocamlmklib to compile with the -shared option.You can turn the .cmxa generated by ocamlmklib into a .cmxs by calling (for example): ocamlopt -shared -I . -linkall -o mylib.cmxs mylib.cmxa The .cmxs should then be loadable by Dynlink.load.
Thanks, this solves the "native" part of my problem ! Now I need to figure out how to link this .so file.
-- Romain Bardou -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
