如何使用GCC强制构建32位Boost?

如何使用GCC强制构建32位Boost?,gcc,boost,32-bit,Gcc,Boost,32 Bit,如何使用GCC强制构建32位Boost?当前正在尝试将此行放入myuser config.jam,但不起作用: using gcc : 4.1.2 : g++ : compileflags="-m32" ; 如果使用C++ Boost 1.40,请使用: bjam address-model=32 如果您使用的是耳机版本,请考虑升级。如果不能,请使用 bjam address-model=32 architecture=x86 我还建议您看看这个答案,它帮助我找到了一个适合我的解决方案。我

如何使用GCC强制构建32位Boost?当前正在尝试将此行放入my
user config.jam
,但不起作用:

using gcc : 4.1.2 : g++ : compileflags="-m32" ;

如果使用C++ Boost 1.40,请使用:

bjam address-model=32

如果您使用的是耳机版本,请考虑升级。如果不能,请使用

bjam address-model=32 architecture=x86

我还建议您看看这个答案,它帮助我找到了一个适合我的解决方案。我试图在64位debian上编译一个32位版本的
boost\u 1\u 43\u 0
,最终得出以下结论:

./bjam                 \
  cflags=-m32          \
  cxxflags=-m32        \
  address-model=32     \
  threading=multi      \
  architecture=x86     \
  instruction-set=i686 \ 
  stage

要使用bjam构建它,我想您应该这样做:bjam地址模型=32架构=x86这是在Linux系统上吗…?我通常通过使用
setarch i686 make
或类似工具作弊。不过,我不知道这是否对Boost有效。(在这种情况下,你可以为你的操作系统下载32位二进制文件,所以我猜你可能在另一个系统上。)哦,是的。。。那本“精美手册”很棒。我喜欢他们提供的所有例子。(讽刺)补丁是受欢迎的。但是,我不确定为上述URL中列出的每个属性显式添加完整的命令示例是否会大大增加文档的大小。请注意,如果您有64位版本的
gcc
,您应该看看@AndrewMeadows answer。在OS X 10.6.8上使用Boost 1.44,我仍然觉得有必要指定
architecture=x86
。即使对于Boost 1.49.0,我也必须使用architecture=x86标志才能在Mac OS X 10.8上运行。此外,如果您想更改编译器,您可以通过boost目录的'project config.jam'或'user config.jam'指定编译器版本,方法是确保
使用gcc::g++-4.4用于(指定4.4用于在64位linux上使用Matlab MEX(32位)文件编译Boost)。谢谢Andrew,非常有用的答案!