我正在尝试编译 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 机器。