Building boost 1.37 (Regex with ICU) problem with MSVC9 x64

Hi, I am unable to cleanly fully build boost 1.37 with ICU for regex for x64 on Windows with MSVC++ 2008. I first tried building with MSVS 2008 SP1 on Windows XP SP3 with ICU 4.0. Building x86 versions first, there were a number of link error, so I (copy & then) renamed icudt.lib, icuin.lib, icuind.lib, and icuind.pdb to icudata.lib & icui18n* as a comment suggested on a website I found via Google. That fixed the x86 errors. I did the same with the x64 ICU files, and try building, but got 4 link errors. D:\boost_1_37_0>bjam --without-mpi --toolset=msvc --build-dir=x64 --build-type=complete -sHAVE_ICU=1 -sICU_PATH="...." stage Because I had a few post-building error cross building ICU to x64 as it runs some build'd .exe that obviously can't run on x86 Windows, I preceeded to try building Boost.Regex on Windows XP x64 SP2 (running inside VMWare), again with MSVS 2008 SP1. Cleanly build ICU 4.0, copy & renamed the libs as above, before building: C:\boost_1_37_0>bjam --with-regex --toolset=msvc --build-type=complete -sHAVE_ICU=1 -sICU_PATH="C:\icu" stage The errors that resulted are essentially the same as before. Any help would be appericated. Thanks. KTC -------- WARNING: No python installation configured and autoconfiguration failed. See http://www.boost.org/libs/python/doc/building.html for configuration instructions or pass --without-python to suppress this message and silently skip all Boost.Python targets Note: Building Boost.Regex with Unicode/ICU support enabled Using ICU in C:\icu/include Skipping build of: ./stage <build>no in common properties Skipping build of: ./stage <build>no in common properties Skipping build of: ./stage <build>no in common properties Skipping build of: ./stage <build>no in common properties Skipping build of: libs/regex/build/icucore <build>no in common properties Skipping build of: libs/regex/build/icuin <build>no in common properties Skipping build of: libs/regex/build/icudata <build>no in common properties Skipping build of: libs/regex/build/icucore <build>no in common properties Skipping build of: libs/regex/build/icuin <build>no in common properties Skipping build of: libs/regex/build/icudata <build>no in common properties Skipping build of: libs/regex/build/icucore <build>no in common properties Skipping build of: libs/regex/build/icuin <build>no in common properties Skipping build of: libs/regex/build/icudata <build>no in common properties Skipping build of: libs/regex/build/icucore <build>no in common properties Skipping build of: libs/regex/build/icuin <build>no in common properties Skipping build of: libs/regex/build/icudata <build>no in common properties ...patience... ...found 704 targets... ...updating 10 targets... msvc.link.dll bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll Creating library bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.lib and object bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.exp icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall icu_4_0::Locale::~Locale(void)" (__imp_??1Locale@icu_4_0@@UAE@XZ) referenced in function __unwindfunclet$??0icu_regex_traits_implementation@re_detail@boost@@QAE@ABVLocale@icu_4_0@@@Z$0 icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class icu_4_0::Collator * __cdecl icu_4_0::Collator::createInstance(class icu_4_0::Locale const &,enum UErrorCode &)" (__imp_?createInstance@Collator@icu_4_0@@SAPAV12@ABVLocale@2@AAW4UErrorCode@@@Z) referenced in function "public: __thiscall boost::re_detail::icu_regex_traits_implementation::icu_regex_traits_implementation(class icu_4_0::Locale const &)" (??0icu_regex_traits_implementation@re_detail@boost@@QAE@ABVLocale@icu_4_0@@@Z) icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall icu_4_0::Locale::Locale(class icu_4_0::Locale const &)" (__imp_??0Locale@icu_4_0@@QAE@ABV01@@Z) referenced in function "public: __thiscall boost::re_detail::icu_regex_traits_implementation::icu_regex_traits_implementation(class icu_4_0::Locale const &)" (??0icu_regex_traits_implementation@re_detail@boost@@QAE@ABVLocale@icu_4_0@@@Z) icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall icu_4_0::Locale::Locale(void)" (__imp_??0Locale@icu_4_0@@QAE@XZ) referenced in function "public: __thiscall boost::icu_regex_traits::icu_regex_traits(void)" (??0icu_regex_traits@boost@@QAE@XZ) icu.obj : error LNK2019: unresolved external symbol _u_tolower_4_0 referenced in function "public: unsigned __int64 __thiscall boost::icu_regex_traits::lookup_classname(int const *,int const *)const " (?lookup_classname@icu_regex_traits@boost@@QBE_KPBH0@Z) icu.obj : error LNK2019: unresolved external symbol _u_toupper_4_0 referenced in function "public: int __thiscall boost::icu_regex_traits::toupper(int)const " (?toupper@icu_regex_traits@boost@@QBEHH@Z) icu.obj : error LNK2019: unresolved external symbol _u_digit_4_0 referenced in function "public: bool __thiscall boost::icu_regex_traits::isctype(int,unsigned __int64)const " (?isctype@icu_regex_traits@boost@@QBE_NH_K@Z) icu.obj : error LNK2019: unresolved external symbol _u_isspace_4_0 referenced in function "public: unsigned __int64 __thiscall boost::icu_regex_traits::lookup_classname(int const *,int const *)const " (?lookup_classname@icu_regex_traits@boost@@QBE_KPBH0@Z) icu.obj : error LNK2019: unresolved external symbol _u_charFromName_4_0 referenced in function "public: class std::vector<int,class std::allocator<int> > __thiscall boost::icu_regex_traits::lookup_collatename(int const *,int const *)const " (?lookup_collatename@icu_regex_traits@boost@@QBE?AV?$vector@HV?$allocator@H@std@@@std@@PBH0@Z) icu.obj : error LNK2019: unresolved external symbol _u_isblank_4_0 referenced in function "public: bool __thiscall boost::icu_regex_traits::isctype(int,unsigned __int64)const " (?isctype@icu_regex_traits@boost@@QBE_NH_K@Z) icu.obj : error LNK2019: unresolved external symbol _u_charType_4_0 referenced in function "public: bool __thiscall boost::icu_regex_traits::isctype(int,unsigned __int64)const " (?isctype@icu_regex_traits@boost@@QBE_NH_K@Z) bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll : fatal error LNK1120: 11 unresolved externals call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 >nul link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /subsystem:console /out:"bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll" /IMPLIB:"bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.lib" /LIBPATH:"C:\icu\lib" @"bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll.rsp" if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL% if exist "bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll.manifest" ( mt -nologo -manifest "bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll.manifest" "-outputresource:bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll;2" ) ...failed msvc.link.dll bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.dll bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.lib... ...removing bin.v2\libs\regex\build\msvc-9.0\debug\threading-multi\boost_regex-vc90-mt-gd-1_37.lib ...skipped <pstage\lib>boost_regex-vc90-mt-gd-1_37.dll for lack of <pbin.v2\libs\regex\build\msvc-9.0\debug\threading-multi>boost_regex-vc90-mt-gd-1_37.dll... ...skipped <pstage\lib>boost_regex-vc90-mt-gd-1_37.lib for lack of <pbin.v2\libs\regex\build\msvc-9.0\debug\threading-multi>boost_regex-vc90-mt-gd-1_37.lib... ...skipped <pstage\lib>boost_regex-vc90-mt-gd.lib for lack of <pstage\lib>boost_regex-vc90-mt-gd-1_37.lib... msvc.link.dll bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll Creating library bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.lib and object bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.exp icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall icu_4_0::Locale::Locale(class icu_4_0::Locale const &)" (__imp_??0Locale@icu_4_0@@QAE@ABV01@@Z) referenced in function "public: class icu_4_0::Locale __thiscall boost::re_detail::icu_regex_traits_implementation::getloc(void)const " (?getloc@icu_regex_traits_implementation@re_detail@boost@@QBE?AVLocale@icu_4_0@@XZ) icu.obj : error LNK2019: unresolved external symbol _u_tolower_4_0 referenced in function "public: int __thiscall boost::icu_regex_traits::translate_nocase(int)const " (?translate_nocase@icu_regex_traits@boost@@QBEHH@Z) icu.obj : error LNK2019: unresolved external symbol _u_toupper_4_0 referenced in function "public: int __thiscall boost::icu_regex_traits::toupper(int)const " (?toupper@icu_regex_traits@boost@@QBEHH@Z) icu.obj : error LNK2019: unresolved external symbol _u_digit_4_0 referenced in function "public: int __thiscall boost::icu_regex_traits::value(int,int)const " (?value@icu_regex_traits@boost@@QBEHHH@Z) icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall icu_4_0::Locale::Locale(void)" (__imp_??0Locale@icu_4_0@@QAE@XZ) referenced in function "public: class icu_4_0::Locale __thiscall boost::icu_regex_traits::getloc(void)const " (?getloc@icu_regex_traits@boost@@QBE?AVLocale@icu_4_0@@XZ) icu.obj : error LNK2019: unresolved external symbol _u_isspace_4_0 referenced in function "public: bool __thiscall boost::icu_regex_traits::isctype(int,unsigned __int64)const " (?isctype@icu_regex_traits@boost@@QBE_NH_K@Z) icu.obj : error LNK2019: unresolved external symbol _u_isblank_4_0 referenced in function "public: bool __thiscall boost::icu_regex_traits::isctype(int,unsigned __int64)const " (?isctype@icu_regex_traits@boost@@QBE_NH_K@Z) icu.obj : error LNK2019: unresolved external symbol _u_charType_4_0 referenced in function "public: bool __thiscall boost::icu_regex_traits::isctype(int,unsigned __int64)const " (?isctype@icu_regex_traits@boost@@QBE_NH_K@Z) icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall icu_4_0::Locale::~Locale(void)" (__imp_??1Locale@icu_4_0@@UAE@XZ) referenced in function "public: __thiscall boost::re_detail::icu_regex_traits_implementation::~icu_regex_traits_implementation(void)" (??1icu_regex_traits_implementation@re_detail@boost@@QAE@XZ) icu.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class icu_4_0::Collator * __cdecl icu_4_0::Collator::createInstance(class icu_4_0::Locale const &,enum UErrorCode &)" (__imp_?createInstance@Collator@icu_4_0@@SAPAV12@ABVLocale@2@AAW4UErrorCode@@@Z) referenced in function "public: __thiscall boost::re_detail::icu_regex_traits_implementation::icu_regex_traits_implementation(class icu_4_0::Locale const &)" (??0icu_regex_traits_implementation@re_detail@boost@@QAE@ABVLocale@icu_4_0@@@Z) icu.obj : error LNK2019: unresolved external symbol _u_charFromName_4_0 referenced in function "public: class std::vector<int,class std::allocator<int> > __thiscall boost::icu_regex_traits::lookup_collatename(int const *,int const *)const " (?lookup_collatename@icu_regex_traits@boost@@QBE?AV?$vector@HV?$allocator@H@std@@@std@@PBH0@Z) bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll : fatal error LNK1120: 11 unresolved externals call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 >nul link /NOLOGO /INCREMENTAL:NO /DLL /subsystem:console /out:"bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll" /IMPLIB:"bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.lib" /LIBPATH:"C:\icu\lib" @"bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll.rsp" if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL% if exist "bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll.manifest" ( mt -nologo -manifest "bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll.manifest" "-outputresource:bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll;2" ) ...failed msvc.link.dll bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.dll bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.lib... ...removing bin.v2\libs\regex\build\msvc-9.0\release\threading-multi\boost_regex-vc90-mt-1_37.lib ...skipped <pstage\lib>boost_regex-vc90-mt-1_37.dll for lack of <pbin.v2\libs\regex\build\msvc-9.0\release\threading-multi>boost_regex-vc90-mt-1_37.dll... ...skipped <pstage\lib>boost_regex-vc90-mt-1_37.lib for lack of <pbin.v2\libs\regex\build\msvc-9.0\release\threading-multi>boost_regex-vc90-mt-1_37.lib... ...skipped <pstage\lib>boost_regex-vc90-mt.lib for lack of <pstage\lib>boost_regex-vc90-mt-1_37.lib... ...failed updating 4 targets... ...skipped 6 targets... -- Experience is a good school but the fees are high. - Heinrich Heine

KTC wrote:
Hi,
I am unable to cleanly fully build boost 1.37 with ICU for regex for x64 on Windows with MSVC++ 2008.
I first tried building with MSVS 2008 SP1 on Windows XP SP3 with ICU 4.0. Building x86 versions first, there were a number of link error, so I (copy & then) renamed icudt.lib, icuin.lib, icuind.lib, and icuind.pdb to icudata.lib & icui18n* as a comment suggested on a website I found via Google. That fixed the x86 errors.
I did the same with the x64 ICU files, and try building, but got 4 link errors.
D:\boost_1_37_0>bjam --without-mpi --toolset=msvc --build-dir=x64 --build-type=complete -sHAVE_ICU=1 -sICU_PATH="...." stage
Because I had a few post-building error cross building ICU to x64 as it runs some build'd .exe that obviously can't run on x86 Windows, I preceeded to try building Boost.Regex on Windows XP x64 SP2 (running inside VMWare), again with MSVS 2008 SP1.
Cleanly build ICU 4.0, copy & renamed the libs as above, before building:
C:\boost_1_37_0>bjam --with-regex --toolset=msvc --build-type=complete -sHAVE_ICU=1 -sICU_PATH="C:\icu" stage
I have fixed it by adding the "architecture=x86 address-model=64" options as suggested by Dodheim on IRC. KTC -- Experience is a good school but the fees are high. - Heinrich Heine
participants (1)
-
KTC