1

我想在未安装的 Perl 脚本中包含一个本地模块。下面的代码似乎适用于此目的。但是,我要包含的模块是 C 库的包装器。我这样做如下:

use FindBin;
use lib "$FindBin::Bin/gray-tree-suffix-59e1c06/lib";
use Tree::Suffix;

Perl 模块称为Tree::Suffix并充当libstree的包装器。我的问题是,我如何在本地也引用 C 库(假设它没有安装)。

我认为这与 Perl 模块的内部工作有关?如果这是一个业余问题,我深表歉意。谢谢!

4

1 回答 1

1

你试过这个:

.so文件是foo.so,它的完整路径是/bar/baz/foo.so

BEGIN
{
  $ENV{LD_LIBRARY_PATH} = '/bar/baz:'.$ENV{LD_LIBRARY_PATH};
}

use FindBin;
use lib "$FindBin::Bin/gray-tree-suffix-59e1c06/lib";
use Tree::Suffix;

或者,LD_LIBRARY_PATH在调用 Perl 程序之前更改 shell:

export LD_LIBRARY_PATH=/bar/baz:$LD_LIBRARY_PATH
[run your program]
于 2012-09-20T13:21:21.163 回答