Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: [Caml-list] Linking native ocaml object files into C app on Windows
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: peter.ilberg@n...
Subject: Re: [Caml-list] Linking native ocaml object files into C app on Windows
That's it! Everything builds, links and runs fine! Thank you!

Peter





Xavier Leroy <xavier.leroy@inria.fr>
06/10/2004 12:04 PM
 
        To:     peter.ilberg@ni.com
        cc: 
        Subject:        Re: [Caml-list] Linking native ocaml object files 
into C app on Windows


> I'm trying to add some ocaml code (a simple lexer/parser) to an existing 
C 
> application and I'm having problems linking the whole thing on Windows. 
> Needless to say, everything works fine under Unix (Mac OS X). I'm using 
> the MSVC version of ocaml.
> 
> Here's are the commands that I use to build the whole thing:
> 
> cl /c /nologo /MT /I "C:\Program Files\Objective Caml\lib" main.c
> ocamllex lexer.mll
> ocamlopt -c -output-obj lexer.ml -o lexer.obj

Three problems:
1) -c turns linking off, while you really want to do a
  (partial) link here.
2) The compilation of lexer.ml already
   produces lexer.obj, so you give lexer.obj both as input and as output
   to the partial linker, which can break things.
3) With the MSVC port, the output of the partial linker is a .lib file,
   not a .obj file, so it would be prudent to name the output 
appropriately.

Try this instead:

ocamlopt -output-obj -o lexer.lib lexer.ml

Hope this helps,

- Xavier Leroy


-------------------
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