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
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