Version française
Home     About     Download     Resources     Contact us    
Browse thread
I'm having trouble compiling independent executables
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Jeff Shaw <shawjef3@m...>
Subject: I'm having trouble compiling independent executables
Hi there, this is my first post. I'm a college student who learned OCaml 
last semester and likes it a lot. I'm a lingusitics student, so my 
programming knowledge is limited, but I enjoyed learning OCaml a LOT more 
than C++. For fun this winter break I wrote an RPN calculator, and I would 
like to compile it to run independently of any OCaml installation. I have 
both Visual Studio .NET 2003 and cygwin installed. I've googled for the 
errors I'm getting and I can't seem to find anything helpful.

First of all, "ocamlc rpn.ml" always works. But it won't run on a machine 
that doesn't have ocaml installed. The two ways I've read of to make 
stand-alone executables are "ocamlc -custom" and "ocamlopt." I have gotten 
neither to work in all three ways of using OCaml in windows: MSVC, MinGW, 
and cygwin.

With the MSVC compiled version of OCaml:

ocamlc rpn.ml works
ocamlc -custom rpn.ml gives
'cl' is not recognized as an internal or external command,
operable program or batch file.
Error while building custom runtime system

This is partially rectified by putting cl.exe on my PATH, but then I get the 
following dialog box:
"cl.exe - Unable to locate component
This application has failed to start because mspdb71.dll was not found. 
Re-installing the application may fix this problem."

So then I put this DLL's directory on my PATH. Then I get:
"camlprima15001.c
LINK : fatal error LNK1181: cannot open input file 'advapi32.lib'
Error while building custom runtime system"

Searching for this file fails, and googling for it fails, so I don't know 
what to think. I even have the ocaml source code on my hard drive, so I know 
it's not in there.

ocamlopt rpn.ml gives
LINK : fatal error LNK1181: cannot open input file 'advapi32.lib'
Error during linking

I put this file on my PATH, but then I get the same error. I don't know how 
to fix it.

On to cygwin... I've tried recompiling and installing ocaml from source, but 
that doesn't fix the problems.

ocamlc -custom rpn.ml
"/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/bin/ld 
cannot find -lcamlrun
collect2: ld returned 1 exit status
Error while building custom runtime system"

ocamlopt rpn.ml
"cannot find file libasmrun.a"

I put the file on my PATH ( PATH=";/usr/local/lib/ocaml ) but that doesn't 
fix it. I add the file to the command line, but that doesn't fix it either.

MinGW version of ocaml...

ocamlc -custom rpn.ml does not have access to gcc, which is in cygwin only, 
so it doesn't work.

ocamlopt rpn.ml
"'as' is not recognized as an internal or external command,
operable program or batch file.
Assembler error, input left in file 
C:\DOCUME~1\jeff\LOCALS~1\Temp\camlasm4af23d
.s"

BTW my source does not need any special modules; the program runs using only 
what's available in Pervasives.

Any help would be appreciated!
Jeff