Version française
Home     About     Download     Resources     Contact us    
Browse thread
[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: [Caml-list] Linking native ocaml object files into C app on Windows
Hello everyone!

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
cl -o test main.obj lexer.obj /link /nologo 
/libpath:"c:\progra~1\object~1\lib" libasmrun.lib

And here are the link errors that result from the last command:

lexer.obj : error LNK2001: unresolved external symbol _Lexing__engine_117
lexer.obj : error LNK2001: unresolved external symbol 
_Lexing__from_function_140
lexer.obj : error LNK2001: unresolved external symbol _Lexing__lexeme_155
lexer.obj : error LNK2001: unresolved external symbol 
_Pervasives__close_out_232
lexer.obj : error LNK2001: unresolved external symbol 
_Pervasives__open_out_202
lexer.obj : error LNK2001: unresolved external symbol 
_Pervasives__output_string_214
lexer.obj : error LNK2001: unresolved external symbol _caml_curry2
libasmrun.lib(startup.obj) : error LNK2001: unresolved external symbol 
_caml_code_segments
libasmrun.lib(startup.obj) : error LNK2001: unresolved external symbol 
_caml_data_segments
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Failure
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Invalid_argument
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Out_of_memory
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Stack_overflow
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Sys_error
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_End_of_file
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Division_by_zero
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Not_found
libasmrun.lib(fail.obj) : error LNK2001: unresolved external symbol 
_Sys_blocked_io
libasmrun.lib(i386nt.obj) : error LNK2001: unresolved external symbol 
_caml_apply2
libasmrun.lib(i386nt.obj) : error LNK2001: unresolved external symbol 
_caml_apply3
libasmrun.lib(i386nt.obj) : error LNK2001: unresolved external symbol 
_caml_program
libasmrun.lib(roots.obj) : error LNK2001: unresolved external symbol 
_caml_globals
libasmrun.lib(roots.obj) : error LNK2001: unresolved external symbol 
_caml_frametable
test.exe : fatal error LNK1120: 23 unresolved externals

I'm sure I'm missing something obvious, but I can't figure it out. Thanks 
in advance,

Peter

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