Re: [Boost-users] Boost + ICU in Windows with MinGW
In my past email I made a mistake, the ICU configure method I use was a) ./configure --prefix=/mingw/ --enable-static --disable-shared --disable-strict --disable-threads and not b) ./configure --prefix=/mingw/ --disable-strict --disable-threads The a) configure command generates a boost_regex-mt.lib of around 3.5MB. I use the b) command first, but that gives me a boost_regex-mt.lib of about 2MB, and got compilation errors with the freeling library about icu methods not found, for example u_tolower_42. From: soloninguno@hotmail.com To: boost-users@lists.boost.org Subject: Boost + ICU in Windows with MinGW Date: Mon, 28 Feb 2011 15:42:32 -0300 Hi mates, I have a question about boost compiled with icu support for using it in another library (freeling). All this work is in windows using mingw32, the icu 4.2.1 library and boost 1_40. I compile boost with the following bjam line $ bjam toolset=gcc variant=release threading=multi threadapi=win32 link=shared runtime-link=shared --prefix=$PREFIX --user-config=tools/build/v2/user-config.jam -j 2 --with-filesystem --with-program_options --with-regex define=U_STATIC_IMPLEMENTATION=1 -sHAVE_ICU=1 -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged -a --build-type=complete stage I applied the following patch before compilation, without it I don't get the boost_regex-mt.lib and boost_regex_mt.dll, but the libboost_regex-mt.lib. https://build.opensuse.org/package/view_file?file=boost-regexdll.patch&package=mingw32-boost&project=windows%3Amingw%3Awin32&srcmd5=561592621be0390a05766ba9ae4d390a This compilation works great, and also the compilation of the freeling library, which generates an exe. But after that, If I try to run the generated exe (with the boost dlls ) I get this error terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> > what(): Could not initialize ICU resources Could anyone help me undersanding this error? I suppose it has something to do with some missing ICU files, and I'm sure i make some mistake in the compilation process but I didn't get where is it. I also tried building boost with link=static runtime-link=static, but of course if I do that I don't get the boost_regex-mt.lib but the libbost_regex-mt.lib (and i need the dynamic library for compilation of the freeling library). I now this is not the ICU forum, but if it helps for catching the problem ICU was compiled this way a) apply some diffs from this patch http://devs.openttd.org/~terkhen/libicu/libicu_4_6_mingw32.diff (reference link http://wiki.openttd.org/Compiling_on_MinGW#Compiling_libicu), to make it compile in MinGW (not all cause there are some difference between icu 4.2.1 and 4.6). b) After that run $ ./configure --prefix=/mingw/ --disable-strict --disable-threads $ make install This compilation doesn't generate any dll, only the libs for making boost compile. Thanks in advance and best regards, and sorry if this mails is a mess, I only try to give all the information I think is useful.
participants (1)
-
Jose Mondefo