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
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 >::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 --