【发布时间】:2010-11-05 02:41:08
【问题描述】:
我正在尝试编译一个包含 CPAN 模块的可移植版本的 perl,特别是 YAML 模块。我打算将这个可移植版本复制到我在许多 Redhat Linux 机器上的主目录中,将它添加到我的 $PATH 并使用这个版本而不是默认的 perl 版本来运行一些测试。
我已经设法编译了一个可移植版本的 perl 并让它在不同的机器上运行。但是,当我编译并安装 YAML 模块时,它可以在本地工作,但是当我将其复制到其他机器时会失败。
这是我在本地为 YAML 模块编译的步骤
perl Makefile.pl
make test
make install
它在本地安装 YAML 模块,当我在脚本中使用 YAML 模块时也可以在本地工作。
这是我将 perl 复制到另一台机器并尝试使用 YAML 模块时的错误...
Can't locate loadable object for module YAML::XS::LibYAML in @INC
即使 lib/site_perl/5.10.1/x86_64-linux/YAML/LibYAML.pm 存在于我的本地副本中。
我正在尝试做的事情可能吗?
如果是这样,我哪里出错了?
【问题讨论】:
-
错误信息不是在抱怨 YAML::LibYAML,而是在抱怨 YAML::XS::LibYAML。
-
不是关于 YAML::XS::LibYAML,而是它的 C 部分 - LibYAML.so(或类似的东西)。
-
我确定 YAML-LibYAML 模块包含 YAML::XS。我认为尽管 Alexandr 是对的,但不知何故,模块的 C 部分一旦编译就不可移植。
标签: perl compilation perl-module portable-executable