Version française
Home     About     Download     Resources     Contact us    
Browse thread
Statically linked win32 libcamlrun.lib?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Lally Singh <lally.singh@g...>
Subject: Re: [Caml-list] Statically linked win32 libcamlrun.lib?
On Thu, Apr 15, 2010 at 2:59 AM, Dmitry Bely <dmitry.bely@gmail.com> wrote:
> On Thu, Apr 15, 2010 at 3:39 AM, Lally Singh <lally.singh@gmail.com> wrote:
>
>>  Is it possible to statically link libcamlrun.lib, so it'll work with
>> libcmtd.lib instead of msvcrt.dll?  I've tried:
>>
>> FLEXLINK=flexlink -merge-manifest -link /nodefaultlib:msvcrt.lib -link
>> libcmtd.lib
>
> Please don't use "brute force" methods. If you need statically linked
> MSVC runtime, just replace /MD with /MT (or /MTd) in config/Makefile.

Thanks, I've tried this instead, and I can't get through make -f
Makefile.nt bootstrap without:
../../boot/ocamlrun ../../ocamlc -nostdlib -I ../../stdlib -w s -c
-warn-error A -g -I ../win32unix bigarray.mli
File "bigarray.mli", line 384, characters 4-19:
Error: Unbound type constructor Unix.file_descr
make[2]: *** [bigarray.cmi] Error 2

I guess using the flexlink hack just moved whatever underlying problem
I'm having to a later stage.

>
>> in config/Makefile, and it all builds. However, I still get:
>>
>> libcamlrun.lib(sys.obj) : error LNK2019: unresolved external symbol
>> __imp__system referenced in function _caml_sys_system_command
>> libcamlrun.lib(floats.obj) : error LNK2019: unresolved external symbol
>> __imp__frexp referenced in function _caml_frexp_float
>> libcamlrun.lib(floats.obj) : error LNK2019: unresolved external symbol
>> __imp__modf referenced in function _caml_modf_float
>> libcamlrun.lib(startup.obj) : error LNK2019: unresolved external
>> symbol __imp__sscanf referenced in function _scanmult
>> libcamlrun.lib(startup.obj) : error LNK2019: unresolved external
>> symbol __imp___beginthread referenced in function _caml_main
>>
>> Any thoughts?
>
> Ocaml expects C runtime functions exported from a DLL (they have
> __implib prefix). No surprise - MSVC runtime is not a link time choice
> and requires correct compile time flags.
>
>> Sadly I have to do it this way -- we're linking a -output-obj'd .obj
>> into our DLL (which must be statically linked to the runtime) and then
>> linking libcamlrun.lib to that -- or at least hoping to.
>>
>> Thanks in advance for any help!
>
> - Dmitry Bely
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>