一尘不染

强制gcc在64位平台上编译32位程序

linux

我有一个专有程序,试图在64位系统上使用。

当我启动安装程序时,它可以正常运行,但是在尝试更新自身并编译一些模块之后,它无法加载它们。

我怀疑这是因为它正在使用gcc,而gcc试图将它们编译为64位系统,因此该程序无法使用这些模块。

是否有任何方法(一些环境变量或类似的东西)强制gcc为32位平台执行所有操作。32位chroot可以工作吗?


阅读 564

收藏
2020-06-03

共1个答案

一尘不染

您需要使GCC使用该-m32标志。

您可以尝试向您的脚本编写一个简单的shell脚本$PATH并将其命名为gcc(确保您不覆盖原始gcc,并确保新脚本早于出现$PATH,并且使用了指向GCC的完整路径。

我认为您需要的代码就像是/bin/gcc -m32 $*取决于您的shell一样(在$*那里可以包含所有参数,尽管可能还有其他东西-非常重要!)

2020-06-03