[Libreoffice] Naming clash on icuin.lib on Windows build

Matúš Kukan matus.kukan at gmail.com
Sat Aug 20 08:08:42 PDT 2011


On 20 August 2011 16:33, Kohei Yoshida <kohei.yoshida at gmail.com> wrote:
> So, I was looking into a mysterious build breakage in forms (on
> WIndows).  It would fail at link time due to missing external symbols.
>  It was expecting to find those symbols from icuin.lib, which is a
> static library file generated from the icu module.
>
> The funny thing is, when I do
>
> cd icu
> rm -rf $INPATH
> build
> deliver
>
> and re-build forms afterward, it builds fine.
>
> After many hours of hair-pulling investigation, I've come to find out
> that both icu and cui modules produce a static library named
> "icuin.lib", and the forms library tries to link to icuin.lib that's
> produced by the cui module, not the one from icu module which has
> already been overwritten, hence the link failure.
>
oh, this is not nice.

> The question here is, how do we go about fixing this?
>
Well, hopefully I have fixed the problem. The cui part. No reason for
changing name on windows there I think.
But I don't know anything about icu and MSVC, and if we can also
create icui18n for windows.

And when talking about cui library. This loading is working for windows ?
http://opengrok.libreoffice.org/xref/core/sfx2/source/appl/appinit.cxx#209
aLibName seems to be expanded to cuilo.lib

Here is the name defined when compiling:
http://opengrok.libreoffice.org/xref/core/vcl/source/window/abstdlg.cxx#45

> Also the reason why this won't happen on non-Windows platform is that,
> when building icu, the library name becomes icui18n, not icuin, hence
> no naming clashes.
>
> The cleanest solution (to me) is to have icu produce icui18n.lib
> instead of icuin.lib, but I'm guessing there is a reason why MSVC
> generates icuin.lib with the '18' stripped out?
>
> Kohei

HTH,

Matúš


More information about the LibreOffice mailing list