English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
3.09.3 release candidate 1
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2006-09-13 (15:54)
From: Hendrik Tews <tews@c...>
Subject: Re: [Caml-list] 3.09.3 release candidate 2

   > I do not understand why you do need .cmo files when you have a library
   > (gramlib.cma or camlp4.cma) that includes these modules (note that .a
   > and .cmxa are also available for native linking).

But with this line of reasoning, plexer.{o,cmx} should not be
installed either, shouln't it?

   because these are *camlp4* modules, camlp4 loads bytecode
   (only) dynamically from a single cmo file (only).

No, for me it was like that:
- first I didn't know, there is library with these modules 
  (how to find out what library contains a given module without
  grepping through the build log?)
- linking gramlib does not work, because the module is not
  explicitely referenced (only during runtime the program does a
  dynlink on something else that needs the given module)

I could fix that with adding an artificial reference like

module XXX = Plexer

(I could still imagine some camlp4 application szenario, where
you need to use -linkall, but don't want to link all of
gramlib.cma. Then you would need the cmo itself, right? However,
this was not the case in my application.)