Re: [Boost-users] Compiling Boost with 4 byte packing...

I finally got boost to build with visual studio 2008 and 4-byte packing. Here is what I had to do: 1. Edit the tools\build\v2\user-config.jam and add: using msvc : vc9 : "D:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe" : <compileflags>-DBOOST_HAS_ABI_HEADERS <compileflags>-DBOOST_PROTO_MAX_ARITY=10 <compileflags>-DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS <compileflags>-DBOOST_MPL_LIMIT_METAFUNCTION_ARITY=10 <compileflags>-DWIN32 <compileflags>-D_DEBUG <compileflags>-D_LIB <compileflags>-D_WIN32_WINNT=0x0501 <compileflags>-D_UNICODE <compileflags>-DUNICODE <compileflags>-DBOOST_ASIO_ENABLE_BUFFER_DEBUGGING <compileflags>-Gm <compileflags>-EHsc <compileflags>-RTC1 <compileflags>-MTd <compileflags>-Zp4 <compileflags>-W4 <compileflags>-c <compileflags>-ZI <compileflags>-TP <linkflags>/MACHINE:X86 ; 2. On the bjam command line use the options: --toolset=msvc-9.0 cxxflags=-Zp4 3. Edit boost/config/user.hpp: // BOOST_ABI_PREFIX: A prefix header to include in place of whatever // boost.config would normally select, any replacement should set up // struct packing and alignment options as required. #define BOOST_ABI_PREFIX <boost/config/abi/saplib_prefix.hpp> // BOOST_ABI_SUFFIX: A suffix header to include in place of whatever // boost.config would normally select, any replacement should undo // the effects of the prefix header. #define BOOST_ABI_SUFFIX <boost/config/abi/saplib_suffix.hpp> The prefix header just contains #pragma pack(push,4) and the suffix just has #pragma pack(pop) 4. For some reason ASIO does not use the boost ABI header prefix and suffix. It has its own. Edit boost/asio/detail/push_options.hpp to use #pragma pack(push,4). The boost build now completes cleanly (with no errors or warnings) on boost 1.43. There seems to be some room for simplification or improvement here?
participants (1)
-
Brian Nantz