在AMD64(Ubuntu 11.10)上编译boost为i386

Compiling boost as i386 on AMD64 (Ubuntu 11.10)

本文关键字:编译 boost i386 AMD64 Ubuntu      更新时间:2023-10-16

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

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

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

似乎我一直做对了,但我太笨了,没有意识到如何将库与来自 Windows 环境的 GCC 链接器正确链接。您可以通过使用 -m32 标志和正确设置 bjam 来轻松编译 boost 库。有关详细信息,请参阅此问题中的第一个答案:如何使用 gcc 强制构建 32 位提升?