【问题标题】:Building Ruby 32-bit on CentOS 5在 CentOS 5 上构建 Ruby 32 位
【发布时间】:2011-10-15 12:58:37
【问题描述】:

我在尝试 ./configure && make && make 在 CentOS 64 位中将 ruby​​ 1.9.2 安装为 32 位软件包时遇到了麻烦。无论我如何配置和构建它,它似乎总是以 64 位包的形式出现。

我尝试使用 CFLAGS="-m32" LDFLAGS="-m32" CXXFLAGS="-m32" 和 —target=i686-unknown-linux-gnu 选项运行 ./configure 命令。最后一个选项更改了生成的 ruby​​ 命令中显示的体系结构,但它仍然是 64 位。

我还尝试安装 rvm,然后使用他们在故障排除 docs 中推荐的标志安装 ruby​​ 1.9.2。

我也在尝试 ./configure && make 在我拥有的 32 位 CentOS 安装中,然后将其复制到我的 64 位安装中,然后运行 ​​make install。我不知道这是否可行。

一天多来我一直在互联网上寻找帮助,但在 Google 上似乎找不到太多信息。似乎我没有找到运行 ./configure && make && make install 时要设置的神奇选项组合。

如果您需要更多信息,请告诉我,我很乐意提供。感谢您的帮助。

编辑:查看了我在互联网上的资源并重新阅读了this,特别是某人关于如何使用搜索命令将 Ruby 编译为 32 位的说明。我使用 yum 安装 setarch,然后按照这些指示进行操作 - 仍然没有运气。 Ruby 仍在编译为 64 位。

【问题讨论】:

  • 除非 Ruby 所需的所有支持库也是 32 位的,否则这样做可能会遇到很多麻烦。
  • @tadman 如果不是 Ruby 需要的所有库都是 32 位的,有没有办法强制 gcc 出错?我假设这仍在构建过程中。
  • 通常,如果找不到合适的库,链接器会放弃,尽管错误消息本身似乎暗示库不存在,而实际上它只是 not 类型。

标签: ruby 32bit-64bit centos5


【解决方案1】:

【讨论】:

  • 查看了您的 - 未安装 libstdc++-devel.i386 库。我安装了它并重做了 ./configure && make && make install。命令“file ruby​​”返回“ruby:ELF 64 位 LSB 可执行文件,AMD x86-64,版本 1 (SYSV),适用于 GNU/Linux 2.6.9,动态链接(使用共享库),适用于 GNU/Linux 2.6。 9、不剥离'。所以,它仍然是 64 位的。 : (
  • 您是否使用 m32 选项运行配置?
  • 我使用 CFLAGS="-m32" LDFLAGS="-m32" CXXFLAGS="-m32" 选项运行它。我应该采取不同的做法吗?
  • 你能将 make 的输出粘贴到 bin 中吗?它可能有助于确定 -m32 选项是否正确传递给编译器和链接器,以及查看它链接的库。
  • 我跑了 'CFLAGS='-m32' LDFLAGS='-m32' ./configure --target=i686-unknown-linux-gnu' 然后 'make' 我的输出是@987654322 @。如果有帮助,我在 Makefile 中注意到 CFLAGS 设置中没有列出任何内容。
猜你喜欢
  • 2012-07-20
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2014-04-01
  • 2013-04-05
  • 1970-01-01
  • 2016-12-02
  • 2016-11-08
相关资源
最近更新 更多