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

Kohei Yoshida kohei.yoshida at gmail.com
Sat Aug 20 07:33:47 PDT 2011


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.

The question here is, how do we go about fixing this?

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


More information about the LibreOffice mailing list