You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xerces.apache.org by "Schlesinger, Philip" <ps...@filenet.com> on 2006/06/30 20:58:13 UTC

Where is icuucd.lib?

Hi all.  As GDB requires some thought to install on the AIX machine, I'm
working for now on building Xerces-C on our NT machine, which runs VC6.
Hence, I'm using the perl script:

perl packageBinaries.pl -s $XERCESCROOT -o $XERCESBLD -n fileonly -t icu
-b 32 -j > log-new.txt 2>&1

Getting a weird error as reported in
xerces-c-src_2_7_0\Projects\Win32\VC6\xerces-all\buildlog_debug.txt :

<snip>
XSDElementNSImpl.cpp
DOMException.cpp
DOMRangeException.cpp
DOMXPathException.cpp
Generating Code...
Linking...
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
kernel32.lib user32.lib icuucd.lib icuucd.lib XercesMessages2_7.lib
icuucd.lib XercesMessages2_7.lib icuucd.lib XercesMessages2_7.lib
icuucd.lib XercesMessages2_7.lib icuucd.lib XercesMessages2_7.lib
icuucd.lib XercesMessages2_7.lib icuucd.lib XercesMessages2_7.lib
icuucd.lib advapi32.lib "/base:0x12000000" /subsystem:windows /dll
/incremental:yes
"/pdb:..\..\..\..\..\Build\Win32\VC6\Debug/xerces-c_2_7D.pdb" /debug
/machine:I386
"/out:..\..\..\..\..\Build\Win32\VC6\Debug/xerces-c_2_7D.dll"
"/implib:..\..\..\..\..\Build\Win32\VC6\Debug/xerces-c_2D.lib"
/pdbtype:sept "/libpath:C:/bldtogether/icubld\lib"
"/libpath:C:/bldtogether/icubld\source\data"
"/libpath:c:/bldtogether/xerces-c-src_2_7_0\src\xercesc\util\MsgLoaders\
ICU\resources" "/libpath:c:/bldtogether/icubld\lib"
"/libpath:c:/bldtogether/icubld\source\data"
"/libpath:/cygdrive/c/bldtogether/icubld\lib"
"/libpath:/cygdrive/c/bldtogether/icubld\source\data"
"/libpath:/cygdrive/c/bldtogether/xerces-c-src_2_7_0\src\xercesc\util\Ms
gLoaders\ICU\resources" "/libpath:/cygdrive/c/bldtogether/icubld\lib"
"/libpath:/cygdrive/c/bldtogether/icubld\source\data"
"/libpath:/cygdrive/c/bldtogether/xerces-c-src_2_7_0\src\xercesc\util\Ms
gLoaders\ICU\resources" "/libpath:/cygdrive/c/bldtogether/icubld\lib"
"/libpath:/cygdrive/c/bldtogether/icubld\source\data"
"/libpath:/cygdrive/c/bldtogether/xerces-c-src_2_7_0\src\xercesc\util\Ms
gLoaders\ICU\resources" /version:2.7.0 
"\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\Win32Platform
Utils.obj" 
"\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\ICUMsgLoader.
obj" 
"\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\ICUTransServi
ce.obj" 
"\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\ASCIIRangeFac
tory.obj" 
.
.
.
"\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\DOMRangeExcep
tion.obj" 
"\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\DOMXPathExcep
tion.obj" 
"\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\Version.res" 
LINK : fatal error LNK1104: cannot open file "icuucd.lib"
Error executing link.exe.
</snip>

I've searched my ICU build and source directories as well as the Xerces
source directory and cannot find "icuucd.lib".  My ICU build checked out
ok via "make check", so I wonder what else it could be.

Help?

- Phil


Re: Where is icuucd.lib?

Posted by David Bertoni <db...@apache.org>.
Schlesinger, Philip wrote:
> Hi all.  As GDB requires some thought to install on the AIX machine, I'm
> working for now on building Xerces-C on our NT machine, which runs VC6.
> Hence, I'm using the perl script:
> 
> perl packageBinaries.pl -s $XERCESCROOT -o $XERCESBLD -n fileonly -t icu
> -b 32 -j > log-new.txt 2>&1
>

...

> "\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\DOMRangeExcep
> tion.obj" 
> "\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\DOMXPathExcep
> tion.obj" 
> "\bldtogether\xerces-c-src_2_7_0\Build\Win32\VC6\Debug\obj\Version.res" 
> LINK : fatal error LNK1104: cannot open file "icuucd.lib"
> Error executing link.exe.
> </snip>
> 
> I've searched my ICU build and source directories as well as the Xerces
> source directory and cannot find "icuucd.lib".  My ICU build checked out
> ok via "make check", so I wonder what else it could be.
> 
> Help?
>

This is an issue with the way the ICU builds when you generate the makefiles using the Cygwin option.  When building the 
  ICU using the IDE, the debug versions of the ICU binaries and import libraries have the letter "d" appended to them, 
to distinguish them from the release versions.  This is very important, because you shouldn't mix release and debug 
binaries on Windows.

This is really something the ICU team either needs to fix or document. I suggest you build two versions of the ICU using
runConfigureICU, and make sure you supply the --disable-release and --enable-debug flags for one of them, which will
give you debug configuration executables with debug symbols.  Then, you can simply copy the icuuc.lib debug version to 
icuucd.lib so the link succeeds.

However, you will not be able to have both release and debug versions of the ICU on the path, which you can do when the 
binaries have distinct names.  Another option is to add the suffix "d" to the debug binaries, using the configure option 
--with-library-suffix, although that still will not produce a debug binary with the same name as the IDE build.

Dave