我在 Mac OS X 10.5 下编译了 Perl 5.10.1,它被编译为 32 位程序。后来我升级到了 Mac OS X 10.6。我的 Perl 5.10.1 版本继续正常工作,但我刚试图编译 JSON::XS 时出现了以下错误:
无法加载 '/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle',因为找不到合适的映像。已找到:/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle:mach-o,但架构不正确,位于 /Users/cowens/local/lib/perl5/5.10.1/darwin-thread-multi-2level/DynaLoader.pm 的第 204 行。
快速查看
/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle:Mach-O 64 位捆绑 x86_64
由于这很可能是罪魁祸首,我想尝试将该模块编译为 32 位。我假设可以设置一些环境变量(如
另一种选择似乎是重新编译 Perl 和所有模块(我不确定是否想要这样做)。
无法加载 '/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle',因为找不到合适的映像。已找到:/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle:mach-o,但架构不正确,位于 /Users/cowens/local/lib/perl5/5.10.1/darwin-thread-multi-2level/DynaLoader.pm 的第 204 行。
快速查看
/ Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle
,显示它确实是一个 64 位库:/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle:Mach-O 64 位捆绑 x86_64
由于这很可能是罪魁祸首,我想尝试将该模块编译为 32 位。我假设可以设置一些环境变量(如
CCFLAGS
)来强制将其编译为 32 位库而不是 64 位库。另一种选择似乎是重新编译 Perl 和所有模块(我不确定是否想要这样做)。