我们有一个旧的Perl应用程序。最近我们搬到了一台运行64位Ubuntu的新服务器。 旧应用程序使用打包/解包函数和按位操作,现在它失败,因为按位操作返回64位整数而不是32位。
有没有办法强制perl进入32位模式? 如果没有,有没有办法在64位机器上安装32位perl?
谢谢!
答案 0 :(得分:3)
有没有办法强制perl进入32位模式?
不,但您可以切换到使用正确的(便携式)打包/解包模式,并在适当的位置使用& 0xFFFFFFFF
。
如果没有,有没有办法在64位机器上安装32位perl?
来自INSTALL
:
本地64位系统既不需要-Duse64bitint也不需要-Duse64bitall。在这些系统上,它可能是默认的编译模式,并且目前无法保证将任何use64bitall选项传递给Configure进程将构建一个32位perl。计划为将来的perl版本实现-Duse32bit *选项。
所以答案是:也许,但可能不是。
答案 1 :(得分:1)
您可以通过使用以下命令后缀软件包名称来安装32位软件包:i386。在安装库时,至少这对我有用。
$ sudo apt-get install libelf1:i386
我不知道这是否适用于非库,因为可能存在文件名和路径冲突。对于库,32位和64位库被打包成单独的目录。