Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

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: -- (:)
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 []
Envoyé : lundi 7 avril 2003 13:11
À : ''
Objet : [Caml-list] C++ embedded ocaml and shared libraries


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



      Visit our Internet site at

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 Archives:
Bug reports: FAQ:
Beginner's list:

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: