|
Boost Users : |
Subject: Re: [Boost-users] regex: link issue on Visual Studio 11 (v17) x64
From: John Maddock (boost.regex_at_[hidden])
Date: 2012-03-02 04:49:30
> Hey there, I've just built Boost 1.49 with Visual Studio 11 (cl.exe v17)
> and that worked (bjam knows about the compiler version already). I do get
> a linking issue though when using regex in a debug/x64 (static boost,
> static run-time) build:
>
> unresolved external symbol "private: class
> boost::basic_regex<wchar_t,........
> unresolved external symbol "public: bool __cdecl
> boost::re_detail::perl_matcher<wchar_t const *,
> unresolved external symbol "private: void __cdecl
> boost::re_detail::perl_matcher<wchar_t const *,
>
> The issue surfaces when calling boost::regex_match() with a boost::wregex
> expression.
>
> Here are some debugging notes:
>
> a.. This same application linked against Boost 1.48 using Visual Studio
> 2010 (cl.exe v16). This build did not have ICU.
>
> b.. I have just built ICU and fed it too bjam's command line
> (-sICU_PATH=....), both 32- and 64-bit versions were detected, regex was
> built. Yet it made no difference to the final link step.
>
> It seems the issue is not related to ICU... I am guessing regex speaks
> unicode using a specific Windows backend, but I am lost here. Could
> someone help debugging this please?
Not much as I don't have VS11.
Things to check:
* Are the libraries really 64 bit ones, or were 32 bit ones built by
mistake?
* Does a hello world app that uses boost::regex work?
* Take a peek inside the libraries and see what symbols are defined - there
should be both wchar_t and unsigned short versions in there.
If all else fails and you just want to move on - define BOOST_REGEX_NO_LIB
in your project, and build Boost.Regex as a dll or static lib project in
your IDE - it's "just a bunch of source files" in libs/regex/src, nothing
special about building it.
HTH, John.
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