
"John Maddock" <john@johnmaddock.co.uk> wrote in message news:03ba01c51f23$5ebf5100$81800252@fuji...
Currently, if you try to compile a program that uses boost::regex (either boost versions 1.31 and 1.32) under the debug static runtime library(libboost_regex-vc71-sgd-1_32.lib), you'll get a bunch of multiply defined symbols something like this:
LIBCMTD.lib(_wctype.obj) : error LNK2005: _iswlower already defined in c_regex_traits.obj and so on for all of the character type macros: _iswalpha _iswupper _iswlower _iswdigit _iswxdigit _iswspace _iswpunct _iswalnum _iswprint _iswgraph _iswcntrl _iswascii
This has been noticed before && stems from the fact that the inline directive is ignored for debug mode, causing those inline functions to exist both in the C runtime library and in the regex lib. I found a note going back to 2002 - http://lists.boost.org/MailArchives/boost-users/msg01398.php - which indicates that this problem is longstanding.
I've been trying to reproduce this (again), but can't at present, can you be more specific because linking with the static VC runtime definitely works for me. Are you defining _UNICODE when building the regex lib? If so can you try building the lib without _UNICODE defined and linking to that (defining _UNICODE basically has no effect as far as the regex internals are concerned).
John.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost