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
Re: [Caml-list] cygwin/mingw linking
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2001-09-16 (16:05)
From: CaptnJamesKirk@a...
Subject: Re: [Caml-list] cygwin/mingw linking
In a message dated 9/14/2001 6:41:57 PM Central Daylight Time, 
CaptnJamesKirk@aol.com writes:

> Hi everyone,
>  I've got OCaml 3.02 succesfully installed, compiled, and working under 
>  Windows ME using the latest cygwin. I would like to be able to link my 
>  programs using mingw so the executable doesn't need cygwin1.dll. The docs 
>  mention using the -output-obj option to create an *.o object file that can 
>  be linked, but the manual talks about wrapping this with a C program, 
>  which is not what I want. I just want to manually link the object file(s) 
>  with whichever libraries are needed, using a separate mingw installation. 
> Can I do this?
>  /John

Doesn't look like it's possible now. Here's what I tried. I compiled 
"hello_world.ml" with the "-output-obj" option to produce "camlprog.o". Next, 
still under cygwin, I tried "gcc -o hello_world camlprog.o -lgdi32 
-L/usr/lib/ocaml -lasmrun" and it worked! So, I could manually link a 
complete ocmal program without wrapping with a C program. Next, I exited from 
cygwin and opened up my dos-box for mingw (which doesn't have the cygwin bin 
directory in it's path, so there's no conflict). I used the "camlprog.o" 
which was created under cygwin and directed the linker to the ocaml libs. 
Unfortunately, the linker now complains with, among other things, 

/cygwin/lib/ocaml/libasmrun.a(signals.o)(.text+0x17):signals.c: undefined 
reference to `sigemptyset'

If I'm not mistaken, these are references to some of the more "unix-like" 
functions that cygwin provides and mingw doesn't so it can avoid using the 
cygwin1.dll. So it looks like even a simple "hello world" program need things 
from the ocaml libs that call the cygwin1.dll.

This is unfortunate. I think support for mingw would be a big plus for ocaml. 
Not only is mingw easier to install and use under Windows than cygwin, it 
doesn't require the pesky cygwin1.dll.


Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr