How to build boost libraries with bcc32 v6.31 + Borland XE?

1.8k views Asked by At

I am trying to build boost_1_39 provided with Borland Rad Studio XE using WinXP. The latest version of Developer Studio provides boost_1_39 installer, but not the prebuilt libraries.

Using bjam:

\tools\jam\src\bin.ntx86\bjam --build-dir=c:\boostsource --toolset=borland -d +1 

I get the following errors:

...patience...
...patience...
...patience...
...found 4685 targets...
...updating 970 targets...
common.mkdir c:\boostsource\boost\bin.v2\libs\math\build\borland\debug\link-static\threading-multi
borland.compile.c++ c:\boostsource\boost\bin.v2\libs\math\build\borland\debug\link-static\threading-multi\acosh.obj
libs\math\build\..\src\tr1\acosh.cpp:
borland.compile.c++ c:\boostsource\boost\bin.v2\libs\math\build\borland\debug\link-static\threading-multi\asinh.obj
libs\math\build\..\src\tr1\asinh.cpp:
Warning W8072 .\boost/format/alt_sstream_impl.hpp 108: Suspicious pointer arithmetic in function basic_altstringbuf<char,std::char_traits<char>,std::a
llocator<char> >::seekoff(__int64,std::_Iosb<int>::_Seekdir,std::_Iosb<int>::_Openmode)
Warning W8072 .\boost/format/alt_sstream_impl.hpp 108: Suspicious pointer arithmetic in function basic_altstringbuf<char,std::char_traits<char>,std::a
llocator<char> >::seekoff(__int64,std::_Iosb<int>::_Seekdir,std::_Iosb<int>::_Openmode)
Warning W8072 .\boost/format/alt_sstream_impl.hpp 126: Suspicious pointer arithmetic in function basic_altstringbuf<char,std::char_traits<char>,std::a
llocator<char> >::seekoff(__int64,std::_Iosb<int>::_Seekdir,std::_Iosb<int>::_Openmode)
Warning W8072 .\boost/format/alt_sstream_impl.hpp 126: Suspicious pointer arithmetic in function basic_altstringbuf<char,std::char_traits<char>,std::a
llocator<char> >::seekoff(__int64,std::_Iosb<int>::_Seekdir,std::_Iosb<int>::_Openmode)
borland.compile.c++ c:\boostsource\boost\bin.v2\libs\math\build\borland\debug\link-static\threading-multi\atanh.obj
libs\math\build\..\src\tr1\atanh.cpp:
borland.compile.c++ c:\boostsource\boost\bin.v2\libs\math\build\borland\debug\link-static\threading-multi\cbrt.obj
libs\math\build\..\src\tr1\cbrt.cpp:
Error E2188 .\boost/fusion/container/vector/detail/deref_impl.hpp 32: Expression syntax
Error E2040 .\boost/fusion/container/vector/detail/deref_impl.hpp 32: Declaration terminated incorrectly
Error E2451 .\boost/fusion/container/vector/detail/deref_impl.hpp 38: Undefined symbol 'element'
Error E2299 .\boost/fusion/container/vector/detail/deref_impl.hpp 38: Cannot generate template specialization from 'detail::cref_result<T>'
Error E2451 .\boost/fusion/container/vector/detail/deref_impl.hpp 39: Undefined symbol 'element'
Error E2228 .\boost/fusion/container/vector/detail/deref_impl.hpp 39: Too many error or warning messages
*** 6 errors in Compile ***

Is there a way to build the latest boost libraries with bcc32 version 6.31 supplied with Borland XE?

2

There are 2 answers

1
David Dean On

The combinations of bcc32 and boost::program_options didn't work so well in 1_39. (and that's why it didn't ship with the .lib files for it) You'll probably have to set up a parallel installation of 1_34_1 of boost and tweak it a bit to rebuild the program_options libraries.

1
Scott Saad On

Are you referring to specific libraries that do not come installed with the XE version of the IDE? A good portion of the libraries already come with the product.

The libraries that I see are the following:

  • Date Time
  • Filesystem
  • IOStreams
  • Regex
  • Serialization
  • Signals
  • System
  • Thread
  • Test

Of course, much of what boost provides is in the form of headers and therefore don't need to be compiled.