如何将 Perl 文件编译为可在多种体系结构上执行?

问题描述 投票:0回答:0

我正在尝试编译 Perl,以便它可以在 Arm 架构和 x86_64 机器上运行,使用

pp
。我从文档中看到 Perl 有一个 -m
--multiarch
 选项,它将把 Perl 文件编译成可以在多种架构上运行的 PAR。

-m, --multiarch 构建多架构 PAR 文件。暗示-p.

-p, --par 仅创建 PAR 档案;不要打包成独立的二进制文件。

但是正如它所说,这会产生一个 PAR,而不是一个可执行文件。我不知道如何把它变成一个我可以在多种架构上运行的可执行文件。

假设我想编译我的简单

hello.pl

文件:

#!/usr/bin/perl use warnings; print("Bonjour!\n");
我第一次尝试:

pp -S -m -o hello hello.pl
我认为这仍然会将 hello.pl 转换为 PAR,然后将 PAR 转换为可执行文件,基于文档中的示例,其中它将 .pl 转换为 PAR,然后一步将 PAR 转换为可执行文件:

% pp -p file # Creates a PAR file, 'a.par' % pp -o hello a.par # Pack 'a.par' to executable 'hello' % pp -S -o hello file # Combine the two steps above
但事实并非如此。结果输出仍然是一个 ZIP:

$ file hello hello: Zip archive data, at least v2.0 to extract
我如何编译 .pl 以生成可在包括 Arm 在内的多种架构上运行的可执行文件,而不仅仅是 x86?

编辑:环境是RHE7(Linux)。我只想在 Linux 上运行 perl 脚本,而不是 Mac 或 Windows,但想针对同时运行 arm 架构和 x86_64 架构的 Linux 机器。

linux perl redhat multiarch perl-packager
© www.soinside.com 2019 - 2024. All rights reserved.