【问题标题】:Can gcc generate different size object code?gcc 可以生成不同大小的目标代码吗?
【发布时间】:2010-06-26 19:09:17
【问题描述】:

应该在 gcc 中启用哪个选项来生成 16 位或 32 位或 64 位目标代码?生成上述每种目标代码类型是否有单独的选项?

【问题讨论】:

    标签: c linux gcc compiler-construction embedded


    【解决方案1】:

    生成的目标代码的位数由构建 gcc 时选择的目标架构决定。如果你想为不同的平台构建,你应该为你想要的目标平台构建一个cross compiler

    但是请注意,GCC 不支持 16 位 x86,如果同时安装了 32 位和 64 位 x86 编译器,作为例外,您可以使用 -m32-m64 选择所需的目标格式。

    【讨论】:

    • 是否必须安装 32 位或 64 位 x86 编译器才能获得相应的 32 位或 64 位目标代码?
    • 是的。 -m32-m64 只是告诉 GCC 调用适当的交叉编译器。大多数 Linux 发行版都可以同时安装。
    • @bdonian 你只需要 x86_64 编译器就可以使用-m32
    【解决方案2】:

    要强制 gcc 生成 32 位代码,你可以给它 -m32 标志。要强制它生成 64 位代码,你可以给它 -m64 标志。我不知道 16 位的任何选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 2012-07-13
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多