Boost logo

Boost Users :

From: Bill Buklis (boostuser_at_[hidden])
Date: 2006-08-10 19:59:45


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?

As an aside:

I was only able to compile the boost libraries on a 64-bit machine. Running
bjam on a 32-bit machine kept popping up a message box saying that
(vc2005path...)\amd64\cl.exe was not a valid executable. Apparently the bjam
configuration wants to use a true 64-bit executable version of cl. I wasn't
even aware that any part of VS2005 was actually 64-bit. I thought it was a
32-bit application that could compile/link 64-bit executables. I certainly
can compile 64-bit apps under the IDE.

Anyway, I only mention this in case it somehow relates to the underlying
problem.

Thanks,

-- Bill --


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