在AMD64上编译升级为i386(Ubuntu 11.10)

时间:2012-04-24 19:38:08

标签: c++ boost x86-64 i386 cross-compiling

我正在编程一个程序的扩展,它只支持 i386(我正在运行amd64 Ubuntu 11.10)。每当我编译我的扩展源 我需要使用-m32标志强制32位架构(否则程序将无法加载我的扩展)。迟早要避免提振是不可避免的 由于它庞大而稳定的库,这导致了我的问题。

我想使用boost文件系统,它使用特定于操作系统的函数调用,这反过来导致需要库文件,而不是只需要头文件实现。问题是;我不能/不知道如何在我的amd64机器上设置boost文件系统(i386版本)。如果我为i386下载一个预构建的(.deb)软件包并使用-force-architecture进行安装,它仍然无法抱怨依赖项。

所以基本上;如何在我的(amd64)系统上使用32位(i386)架构设置boost?

1 个答案:

答案 0 :(得分:1)

似乎我一直都是这样做的,但是我太愚蠢了,无法实现如何正确地将库与来自Windows环境的GCC链接器链接起来。您可以使用-m32标志并正确设置bjam来轻松编译boost库。有关详细信息,请参阅此问题的第一个答案:How do I force a 32 bit build of boost with gcc?