Boost logo

Boost Users :

Subject: [Boost-users] Boost.Regex Build Failure with CPP Locale and No Win32 on WinXP using Visual Studio 2010 SP1
From: David Hauck (davidh_at_[hidden])
Date: 2011-04-05 11:14:28


Hello,

I'm attempting to build Boost.Regex v1.46.1 with the following user.hpp settings:

#define BOOST_REGEX_USE_CPP_LOCALE
#define BOOST_REGEX_NO_W32

However, this is failing with the following commands (from the root Boost directory) on WinXP using Visual Studio 2010 SP1:

bjam --clean link=shared regex
bjam link=shared regex

compile-c-c++ bin.v2\libs\regex\build\msvc-10.0\debug\threading-multi\usinstances.obj
usinstances.cpp
c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\map(38) : warning C4273: 'id' : inconsistent dll linkage
        c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\xlocmes(58) : see previous definition of 'public: static std::locale::id std::messages<unsigned short>::id'
        c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\xlocmes(58) : while compiling class template static data member 'std::locale::id std::messages<_Elem>::id'
        with
        [
            _Elem=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/cpp_regex_traits.hpp(216) : see reference to function template instantiation 'bool std::has_facet<std::messages<_Elem>>(const std::locale &) throw()' being compiled
        with
        [
            _Elem=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/cpp_regex_traits.hpp(211) : while compiling class template member function 'std::locale boost::re_detail::cpp_regex_traits_base<charT>::imbue(const std::locale &)'
        with
        [
            charT=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/cpp_regex_traits.hpp(973) : see reference to function template instantiation 'boost::shared_ptr<T> boost::re_detail::create_cpp_regex_traits<charT>(const std::locale &)' being compiled
        with
        [
            T=const boost::re_detail::cpp_regex_traits_implementation<unsigned short>,
            charT=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/cpp_regex_traits.hpp(971) : while compiling class template member function 'boost::cpp_regex_traits<charT>::locale_type boost::cpp_regex_traits<charT>::imbue(boost::cpp_regex_traits<charT>::locale_type)'
        with
        [
            charT=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/regex_traits.hpp(74) : see reference to class template instantiation 'boost::cpp_regex_traits<charT>' being compiled
        with
        [
            charT=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/basic_regex.hpp(312) : see reference to class template instantiation 'boost::regex_traits<charT>' being compiled
        with
        [
            charT=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/instances.hpp(90) : see reference to class template instantiation 'boost::basic_regex<charT,traits>' being compiled
        with
        [
            charT=unsigned short,
            traits=boost::regex_traits<unsigned short>
        ]
c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\map(38) : error C2491:'std::messages<_Elem>::id' : definition of dllimport static data member not allowed
        with
        [
            _Elem=unsigned short
        ]
c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\map(38) : warning C4273: 'id' : inconsistent dll linkage
        c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\locale(48) : see previous definition of 'public: static std::locale::id std::collate<unsigned short>::id'
        c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\locale(48) : while compiling class template static data member 'std::locale::id std::collate<_Elem>::id'
        with
        [
            _Elem=unsigned short
        ]
        C:\eng\natools\boost\1_46_1\boost/regex/v4/cpp_regex_traits.hpp(218) : see reference to function template instantiation 'const _Facet &std::use_facet<std::collate<_Elem>>(const std::locale &)' being compiled
        with
        [
            _Facet=std::collate<unsigned short>,
            _Elem=unsigned short
        ]
c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\map(38) : error C2491:'std::collate<_Elem>::id' : definition of dllimport static data member not allowed
        with
        [
            _Elem=unsigned short
        ]

    call "c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul
cl /Zm800 -nologo @"bin.v2\libs\regex\build\msvc-10.0\debug\threading-multi\usinstances.obj.rsp"

...failed compile-c-c++ bin.v2\libs\regex\build\msvc-10.0\debug\threading-multi\usinstances.obj...
...skipped <pbin.v2\libs\regex\build\msvc-10.0\debug\threading-multi>boost_regex-vc100-mt-gd-1_46_1.dll for lack of <pbin.v2\libs\regex\build\msvc-10.0\debug\threading-multi>usinstances.obj...
...skipped <pbin.v2\libs\regex\build\msvc-10.0\debug\threading-multi>boost_regex
-vc100-mt-gd-1_46_1.lib for lack of <pbin.v2\libs\regex\build\msvc-10.0\debug\threading-multi>usinstances.obj...
...skipped <pbin.v2\libs\regex\build\msvc-10.0\debug\threading-multi>boost_regex-vc100-mt-gd-1_46_1.pdb for lack of <pbin.v2\libs\regex\build\msvc-10.0\debug\threading-multi>usinstances.obj...
...failed updating 1 target...
...skipped 3 targets...
...updated 16 targets...

Any ideas? BTW, ICU is properly identified as not being available. Also, all the previous modules are compiled successfully.

Thanks,
-David


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net