【问题标题】:Need to Build for i586 target with GCC 5.3 i686 Host Toolchain需要使用 GCC 5.3 i686 主机工具链为 i586 目标构建
【发布时间】:2016-05-01 00:03:00
【问题描述】:

我需要在 i686 主机环境(32 位 Ubuntu Docker 容器)中使用 GCC 5.3 为 i586 目标(无 MMX 指令)构建。主机工具链是 i686。有没有办法在不构建 i586 交叉编译器的情况下做到这一点?

【问题讨论】:

    标签: gcc compilation cross-compiling i386 mmx


    【解决方案1】:

    是的,您可以通过指定 -march=cpu-type 选项告诉 gcc 为特定机器类型生成指令。请参阅 gcc 文档中的 x86 Options。所以你需要这样的东西:

    g++ -march=i586 [...]
    

    【讨论】:

    • 试过了。生成的二进制文件仍然无法在目标上运行。还编译了一个静态二进制文件,它肯定包含最有可能来自 glibc 的 MMX 指令。
    • 我相信你必须链接目标机器上安装的 libc 版本(或更小的版本)。我会尝试在你的构建系统上编译旧的 libc 版本(再次使用 -march=i586),然后链接它。也许这有帮助:http://stackoverflow.com/questions/2728552/how-to-link-to-a-different-libc-file
    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2011-12-11
    • 2015-12-23
    • 2017-01-31
    • 2012-06-09
    • 2018-05-30
    相关资源
    最近更新 更多