在AMD64(Ubuntu 11.10)上编译boost为i386
Compiling boost as i386 on AMD64 (Ubuntu 11.10)
我目前正在为一个程序编程扩展,它只支持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 位提升?
相关文章:
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 用STD = C 11或其他标准编译Boost,例如Ash C 14
- 编译Boost ASIO示例时出现错误
- 使用Cygwin win32_api.hpp编译Boost Log中的错误
- 无法编译 boost::asio::basic_datagram_socket<boost::asio::ip::udp>::basic_datagram_socket()
- 编译boost.spirit.karma示例,customize_embedded_container.cpp失败
- 在 solaris cc v5.8 上编译 Boost
- 在Windows上使用zlib编译boost 1.62 / 1.63
- 错误编译Boost.log
- 试图编译Boost和openSSL时(使用WebSocket 或CPPRESTSDK)进行编译错误
- 在Windows上编译Boost :: ASIO示例
- 我可以编译boost.python模块而没有BJAM
- 在spirit parser Action中,在上下文参数上编译boost :: bind(成员函数)上的错误
- 在 Linux 上编译 boost asio 时出现链接错误
- 在目标平台上编译 Boost 自己是否有意义
- 编译 Boost.Bind时出错
- 在OS X上使用clang编译boost regex时发生链接错误
- 编译boost时"threading=multi"究竟做了什么
- 编译 boost 文件系统的教程文件时遇到问题
- 从Linux到Windows交叉编译boost 1.57的问题