如何在使用perlbrew的64位Linux机器上编译32位Perl?

问题描述:

我几乎不熟悉perlbrew。我想我需要使用--sitecustomize $文件名,但我找不到这个文件的例子。我不知道该把文件放在什么位置。任何人都可以看到我可以看到的样品?如何在使用perlbrew的64位Linux机器上编译32位Perl?

+0

同样的问题在这里,5.12.4和5.14.2都失败了。我将'export CC =“gcc -m32”'设置为[由Jonathan Leffler建议](http://*.com/a/216090/269126),但无济于事,该变量未被perlbrew构建机械。 – Lumi 2012-02-14 16:55:32

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

不过,我不认为这个文件是有关楼宇64位系统上的32位的Perl。实际上,目前似乎不可能引用INSTALL文件:

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

这似乎为我工作,在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位。

+2

使用-Darchname = 选项来配置设置拱特定的目录,例如perlbrew install 5.8.9 -Darchname = i686-linux -Accflags =“ - m32 -march = i686”-Aldflags =“ - m32 -march = i686”-Alddlflags =“ - shared -m32 -march = i686” – Bruce 2015-01-28 00:22:52