Am Donnerstag, den 22.08.2013, 18:34 +0100 schrieb John Whitington: > Hi, > > I have the following recipe to build a static library of C functions > from a mixed ocaml / c codebase. The idea is that the final linking step > to build target 'test' won't require any special flags: > > > CAMLBASE = /Users/john/.opam/4.00.1/lib/ > > mklib: cpdflib.mli cpdflib.ml cpdflibwrapper.c > ocamlfind ocamlc -package cpdf cpdflib.mli; > ocamlfind ocamlopt -package cpdf -c cpdflib.ml; > ocamlfind ocamlc cpdflibwrapper.c; > ocamlfind ocamlopt -I $(CAMLBASE)cpdf -I $(CAMLBASE)camlpdf \ > -output-obj -o cpdflib.o \ > unix.cmxa bigarray.cmxa camlpdf.cmxa cpdf.cmxa cpdflib.cmx; > ar -x $(CAMLBASE)camlpdf/libcamlpdf_stubs.a; > ar -x $(CAMLBASE)ocaml/libasmrun.a; > ar cr cpdflib.a *.o > > test: cpdflib.a cpdflibtest.c > cc cpdflibtest.c cpdflib.a -o test\ > -L $(CAMLBASE)ocaml -lbigarray -lunix > > clean: > rm __.SYMDEF\ SORTED *.o *.cmx *.cmi *.a test > > > (Here, cpdflib.ml, cpdflib.mli and cpdflibwrapper.c form the C interface > to the OCaml functions. cpdflibtest.c calls caml_startup and then any > caml functions it likes). > > This works. However, I'm having trouble getting rid of "-L > $(CAMLBASE)ocaml -lbigarray -lunix" -- i'd like the person linking with > my cpdflib.a not to need any dependencies at all. > > When I add two more lines > > ar -x $(CAMLBASE)ocaml/bigarray.a; > ar -x $(CAMLBASE)ocaml/unix.a; These are the wrong two libs. bigarray.a and unix.a are already contained in cpdflib.a. What you need are libbigarray.a and libunix.a. Gerd > > in the obvious place and remove "-L $(CAMLBASE)ocaml -lbigarray -lunix" > when building the example, the linking fails, not being able to find the > symbols for unix and bigarray. ar -t confirms that bigarray.o, unix.o > and unixlabels.o are in the created cpdflib.a > > Any ideas, or another recipe altogether? > > Thanks, > > -- > John Whitington > Director, Coherent Graphics Ltd > http://www.coherentpdf.com/ > > -- ------------------------------------------------------------ Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de My OCaml site: http://www.camlcity.org Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de ------------------------------------------------------------