【问题标题】:How to force /usr/bin/gcc -> /usr/bin/gcc -m32?如何强制 /usr/bin/gcc -> /usr/bin/gcc -m32?
【发布时间】:2011-05-21 03:56:49
【问题描述】:

我有一个大型捆绑软件发行版的错误 Makefile。在某些时候,编译器总是“忘记”我想在 32 位程序中编译。这导致部分程序有 64 位库,而其他程序有 32 位库。

如何在每次运行 gcc 时强制使用 -m32 选项?

br,
朱哈

附:我的环境是混合 32/64 位(macbook5.1,雪豹)。或者:如何让我的系统纯 32 位或 64 位?

编辑:强调覆盖全局变量的不良 Makefile。这就是我选择行之有效的 hack 的原因。

【问题讨论】:

    标签: macos gcc 64-bit osx-snow-leopard 32-bit


    【解决方案1】:

    将您的CFLAGS 环境变量设置为具有-m32 标志。

    export CFLAGS="-m32"

    【讨论】:

    • +1 建议正确的方法。我想知道它是否适用于损坏的 Makefile。
    • @Juha @Nathon - 是的,在 Nathon 发表评论后,我更多地考虑了这个问题。 CFLAGS 环境变量被各种构建工具(configuremake)使用,但我认为在 Juha 的情况下,他的 makefile 正在取消设置标志或在编译的某个时刻根本不使用它们。
    【解决方案2】:

    如果你想要一个糟糕的 hack,你可以用这个 shell 脚本替换 /usr/bin/gcc:

    #!/bin/bash
    /usr/bin/gcc-4.whatever -m32 "$@"
    

    【讨论】:

    • +1,我正要建议这个。如果这不起作用,OP 将不得不修改 Makefiles 的形状。
    • 这大部分运行良好,但有时会有\-受保护的项目。 $* 用 "" 包裹它们,但失败了。有什么办法可以解决这个问题?
    • @Juha:试试"$@",而不是$*
    • @nmichaels 为 gcc 做一个别名不会比弄乱文件更好吗?
    • @chacham15:在大多数情况下,是的。但是,在这一个中,Makefiles 的环境似乎很混乱,所以我不确定它是否可以工作。
    猜你喜欢
    • 2011-05-02
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2014-08-05
    • 2023-01-07
    • 2013-04-22
    相关资源
    最近更新 更多