Version française
Home     About     Download     Resources     Contact us    
Browse thread
Compiling OCaml w/MS VC++ Toolkit 2003
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Sachin Shah <zakaluka@g...>
Subject: Compiling OCaml w/MS VC++ Toolkit 2003
Hello all,

Just joined this list, and it's looking pretty good! In order to use
the latest OCaml, I'm trying to compile it from source using:

(1) MS Visual C++ Toolkit 2003
(2) MS Visual Studio .NET SDK
(3) MS Platform SDK for Windows XP SP2

After a lot of work, I have all the files I need to do the install. 
However, I am stuck on one part and don't know what to do. When
running the command 'make -f Makefile.nt opt', make descends into the
stdlib source directory. There, using ocamlopt, it constructs the file
'stdlib.cmxa'. Directly after that, I get an error message that
prevents the computer from creating the 'stdlib.lib' file. Here is
that message:

================================ (extra lines added for clarity)
../boot/ocamlrun ../ocamlopt -a -o stdlib.cmxa pervasives.cmx
array.cmx list.cmx char.cmx string.cmx sys.cmx hashtbl.cmx sort.cmx
marshal.cmx obj.cmx int32.cmxint64.cmx nativeint.cmx lexing.cmx
parsing.cmx set.cmx map.cmx stack.cmx queue.cmx stream.cmx buffer.cmx
printf.cmx format.cmx scanf.cmx arg.cmx printexc.cmx gc.cmx digest.cmx
random.cmx callback.cmx camlinternalOO.cmx oo.cmx genlex.cmx weak.cmx
lazy.cmx filename.cmx complex.cmx arrayLabels.cmx listLabels.cmx
stringLabels.cmx moreLabels.cmx stdLabels.cmx

LINK : fatal error LNK1104: cannot open file
'@c:\DOCUME~1\sachin\LOCALS~1\Temp\camlrespfba3be'

../boot/ocamlrun ../ocamlopt -warn-error A -nostdlib `./Compflags
std_exit.cmx` -c std_exit.ml
================================

As you can see, it ignores the error and continues with creating the
'std_exit.cmx' file. Searching through the archives here produced
nothing. Searching google came up with a similar error in a project
called MetaPRL. However, the folks there could present no solution.
Hopefully, someone here can :).  From what they were saying, ocamlopt
supposedly calls the library creation program (which, in my case, is
actually the command 'link /lib').  However, it seems that either (1)
ocamlopt is never creating the file, causing the linker to fail, (2)
ocamlopt deletes the file before the linker can get to it (however, I
was monitoring the directory and did not see a file being created), or
(3) there is simply something wrong with ocamlopt and MS VC++ Toolkit
2003 interaction.

My background is mostly in Linux C/C++ development and Java
development. I am familiar with makefiles, but not with the MSVC++.

Thanks for your help,

Sachin.