perl - 如何让 OS X 10.6 将 JSON::XS 编译为 32 位而不是 64 位?

标签 perl macos compilation 32bit-64bit

我在 OS X 10.5 下编译了 Perl 5.10.1。它被编译为 32 位程序。我已经升级到 OS X 10.6。我的 Perl 5.10.1 版本继续正常工作,但我只是尝试编译 JSON::XS 并得到如下错误:

Can't load '/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle' for module JSON::XS: dlopen(/Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle, 2): no suitable image found. Did find: /Users/cowens/.cpan/build/JSON-XS-2.26-clO6XX/blib/arch/auto/JSON/XS/XS.bundle: mach-o, but wrong architecture at /Users/cowens/local/lib/perl5/5.10.1/darwin-thread-multi-2level/DynaLoader.pm line 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-bit bundle x86_64



由于这很可能是罪魁祸首,我想尝试将模块编译为 32 位。我假设有一些环境变量(如 CCFLAGS )我可以设置强制它编译为 32 位库而不是 64 位库。

另一种方法似乎是重新编译 Perl 和我的所有模块(我不确定我想做的事情)。

最佳答案

如果您的 Perl 安装在 /usr/perl/v5.10.1 ,然后尝试查看文件 /usr/perl/v5.10.1/lib/5.10.1/darwin-2level/Config.pm .其中应该有一个“cc”条目;仔细(先备份)将其从“cc”修改为“cc -m32”。尝试重建 JSON::XS。这样做是改变 Perl 对其配置的看法,并且“cc -m32”强制执行 32 位构建。

关于perl - 如何让 OS X 10.6 将 JSON::XS 编译为 32 位而不是 64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674302/

相关文章:

perl - 如何使用Moose为数组属性添加便捷功能?

c - 强制结构成员对齐(使用 IAR 编译器)

python - 用空格填充多个字符 - python

python - 如何为新手安装 pip

php - 无法使用 404 on/bolt/bolt/users/edit/访问新安装的 bolt

c++ - 如何将在 OS X 中开发的 Qt 应用程序部署到 Windows?

c - 在 Centos 6.2 上编译 GnuTLS 时出错

javascript - AngularJS:编译指令的输出

mysql - 当 Perl 错误地说 : `DBI->connect()` ? 时,如何将 "utf8mb4 is not a compiled character set"发送到 MySQL

linux - 按目录中的所有者汇总文件大小的最快方法