How do I force a 32-bit build of Boost with GCC?
Asked Answered
B

2

20

How do I force a 32-bit build of Boost with GCC? Currently attempting by putting this line in my user-config.jam, but it does not work:

using gcc : 4.1.2 : g++ : compileflags="-m32" ;
Bearce answered 31/8, 2009 at 14:30 Comment(2)
To build it using bjam, I think you'd do this: bjam address-model=32 architecture=x86Wavy
Is this on a Linux system…? I generally cheat by using setarch i686 make or similar. I don't know if that'd work for Boost, particularly, though. (And, in that case, you could just download the 32-bit binary for your OS, so I'm guessing perhaps you're on another system.)Worsted
A
25

If you are using C++ Boost 1.40, use:

bjam address-model=32

If you are using eariler version, consider upgrading. If you cannot, use

bjam address-model=32 architecture=x86

I also recommend that you take a look at the fine manual

Aristocrat answered 6/9, 2009 at 7:7 Comment(5)
Oh yeah... that "fine manual" is great. I love all the examples they provide. (Sarcasm)Bearce
Patches are welcome. However, I am not exactly sure that explicitly adding a full command like example for every single property listed at the above URL will do much other than bloating the size of docs.Aristocrat
Note that if you have a 64 bits version of gcc, you should take a look at @AndrewMeadows answer.Caoutchouc
Using Boost 1.44 on OS X 10.6.8, I still find it necessary to specify architecture=x86.Dioscuri
Even for Boost 1.49.0 I had to use the architecture=x86 flag to get this to work on Mac OS X 10.8.Tawnytawnya
F
22

This answer helped me toward a solution that worked for me. I was trying to compile a 32-bits version of boost_1_43_0 on 64-bits debian and eventually came up with this:

./bjam                 \
  cflags=-m32          \
  cxxflags=-m32        \
  address-model=32     \
  threading=multi      \
  architecture=x86     \
  instruction-set=i686 \ 
  stage
Fishbowl answered 7/6, 2010 at 21:48 Comment(1)
In addition, if you want to change the compiler, you can specify your compiler version via the boost directory's 'project-config.jam' or 'user-config.jam' by making sure that using gcc : : g++-4.4 ; is used (specified 4.4 for compiling Boost with Matlab MEX (32-bit) files on 64-bit linux).Hound

© 2022 - 2024 — McMap. All rights reserved.