$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: John Maddock (john_at_[hidden])
Date: 2006-08-11 04:47:33
Bill Buklis wrote:
> I was able to successfully compile the boost libraries for x64 under
> VC 8.0 using the following line:
>
> bjam "-sTOOLS=vc-8_0-amd64"
>
> As far as I can tell everything was successful (see note at end of
> message). There was, of course, a vast quantity of warnings, but all
> of the lib files seem to be there.
>
> Then I tried creating an app using regex. The test code essentially
> boils down to this:
>
> #include <boost/regex.hpp>
>
> bool testregex( const char* StringToMatch )
> {
> return( boost::regex_match( StringToMatch, boost::regex("[A-Z]+") )
> );
> }
>
>
> It compiles fine, but fails to resolve three regex related functions
> in the linker. Paraphrasing to make it a little more readable (if you
> want to see the full text, let me know):
>
> basic_regex<char, regex_traits<char,w32_regex_traits<char> >
> >::do_assign
>
> re_detail::perl_matcher<...>::match
>
> re_detail::perl_matcher<...>::perl_matcher  [constructor]
>
>
> All three of these functions reference boost::w32_regex_traits.
> Perhaps this is where the problem lies? Should it be w64_regex_traits?
>
> Am I missing a define somewhere? Any ideas?
No ideas I'm afraid.  There is no w64_regex_traits: the w32_* version is 
intended for all Windows platforms.
Things to try:
1) Make sure you're actually linking to the 64-bit lib's, are the 32-bit 
ones lurking on anywhere on your hard drive and getting picked out instead?
2) Try defining BOOST_REGEX_NO_LIB when building your test app and adding 
all the regex source files directly to the app's project.  If this succeeds 
it indicates that the lib's you're linking against aren't correctly built.
3) If (2) fails you could try again with BOOST_REGEX_NO_EXTERNAL_TEMPLATES 
defined (the errors all relate to template instantiations that are normally 
placed in the lib file).
Oh and one other suggestion: are you selecting the lib to link against 
manually rather than let the auto-link code select it by any chance?  You 
could see errors like that if you link against the regex dll import lib, 
without defining BOOST_REGEX_DYN_LINK so it knows to add 
__declspec(dllimport) to the codes defs (or vices versa: setting that define 
then linking against the static link lib).
HTH, John.