【问题标题】:How do I compile 32bit Perl on a 64bit Linux machine using perlbrew?如何使用 perlbrew 在 64 位 Linux 机器上编译 32 位 Perl?
【发布时间】:2012-02-09 22:18:32
【问题描述】:

我对 perlbrew 几乎不熟悉。我想我需要使用 --sitecustomize $filename 但我无法在任何地方找到该文件的示例。我不知道在文件中放什么。谁有样品我可以看看?

【问题讨论】:

  • 同样的问题,5.12.4 和 5.14.2 都失败了。我将export CC="gcc -m32" 设置为suggested by Jonathan Leffler 但无济于事,perlbrew 构建机器没有拾取该变量。

标签: perl 64-bit 32-bit perlbrew


【解决方案1】:

这似乎对我有用,在 Centos 5.6 和 Centos 6.2(均为 64 位)上:

$ perlbrew install 5.8.9 -Accflags="-m32 -march=i686" -Aldflags="-m32 -march=i686" -Alddlflags="-shared -m32 -march=i686"

用 5.8.9 和 5.12.4 测试。

警告:perl 仍然记录了 archname=x86_64-linux,并将其用于编译的 @INC 中的特定于 arch 的目录。这是一个缺点,但内容是 32 位的。

【讨论】:

  • 使用 -Darchname= 选项配置来设置特定于拱门的目录,例如perlbrew install 5.8.9 -Darchname=i686-linux -Accflags="-m32 -march=i686" -Aldflags="-m32 -march=i686" -Alddlflags="-shared -m32 -march=i686"
【解决方案2】:

perlbrew网站上有一篇介绍使用sitecustomize文件http://perlbrew.pl/Install-a-sitecustomize.pl-file-with-perlbrew.html

但是我认为这个文件与在 64 位系统上构建 32 位 perl 无关。其实目前看来是不可能的,引用INSTALL文件:

本机 64 位系统既不需要 -Duse64bitint 也不需要 -Duse64bitall。 在这些系统上,它可能是默认的编译模式,并且有 目前不能保证不会将 use64bitall 选项传递给 配置过程将构建一个 32 位 perl。实施 -Duse32bit* options 计划用于 perl 的未来版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-19
    • 2016-05-17
    • 2012-11-18
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多