From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id NAA01019; Mon, 7 Apr 2003 13:36:24 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id NAA01011 for ; Mon, 7 Apr 2003 13:36:23 +0200 (MET DST) Received: from mail.sgam.fr (mail.sgam.com [194.119.92.19]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h37BaM927005 for ; Mon, 7 Apr 2003 13:36:22 +0200 (MET DST) Received: from fr-mailcnx1.sgam.com (mailcnx1 [10.15.1.6]) by mail.sgam.fr (8.12.8/8.12.4) with ESMTP id h37BaMa9025662 for ; Mon, 7 Apr 2003 13:36:22 +0200 (MEST) Received: by FR-MAILCNX1 with Internet Mail Service (5.5.2653.19) id ; Mon, 7 Apr 2003 13:36:09 +0200 Message-ID: <71A291D8E360AF4EA6FFFAF9CAD136CA04AC45@fr-mailbox2> From: EL CHAAR RABIH To: "'caml-list@inria.fr'" Subject: RE: [Caml-list] C++ embedded ocaml and shared libraries Date: Mon, 7 Apr 2003 13:36:13 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Spam: no; 0.00; caml-list:01 initializing:01 -linkall:01 embedding:01 addressee:99 plc:99 bug:01 faq:01 beginner's:01 beginners:01 bin:01 compiler:01 cmo:01 confidential:98 caml-bugs:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk The problem is the following : when you compile ml files into obj, a C file is created, with the = necessary byte code (compilation of the ml). It also defines function such as = startup for initializing your byte code into the gc. If you have several ml files, you should do the following : compile .ml into cmo. join all the cmo with -linkall compiler options into a .obj. use the resulting .obj (unique) for linking your dll. This should work. -----Message d'origine----- De : HAYCOCK, Ian, FM IT [mailto:Ian.Haycock@rbos.com] Envoy=E9 : lundi 7 avril 2003 13:11 =C0 : 'caml-list@inria.fr' Objet : [Caml-list] C++ embedded ocaml and shared libraries Hi I'm trying to embed some ocaml code into a C shared library with C = code.=20 I can produce a static library that does what I want, but I really need = to get a shared library and all attempts I've made so far have failed. Basically I'm trying to compile 2 ml source files into objects and then = put these together with objects from C code, which call out to the caml = code, into the shared library. However the library creation fails telling me = there are multiply defined symbols (eg caml_startup) in the objects produced = from the 2 ml source files. Can anybody give me a hint (or even better an example) as to how to do = this. The only examples I can find on the web relating to embedding ocaml in = C and then creating a shared library involve 1 ml file and 1 C file and in = this instance I don't get the multiple symbol problem. Any help appreciated thanks Ian ******************************************************************** Visit our Internet site at http://www.rbsmarkets.com This e-mail is intended only for the addressee named above. As this e-mail may contain confidential or privileged information, if you are not the named addressee, you are not authorised to retain, read, copy or disseminate this message or any part of it. The Royal Bank of Scotland plc is registered in Scotland No 90312 Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB Regulated by the Financial Services Authority ******************************************************************** ------------------- 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 ------------------- 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