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: Dmitry Bely <dmitry.bely@g...>
Subject: Re: [Caml-list] Statically linked win32 libcamlrun.lib?
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.

> 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