Version française
Home     About     Download     Resources     Contact us    
Browse thread
RE: [Caml-list] C++ embedded ocaml and shared libraries
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: EL CHAAR RABIH <RABIH.EL-CHAAR@s...>
Subject: RE: [Caml-list] C++ embedded ocaml and shared libraries
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é : lundi 7 avril 2003 13:11
À : '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. 
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