【问题标题】:Include a Local Perl Module that References a Local C Library包含引用本地 C 库的本地 Perl 模块
【发布时间】:2012-07-25 08:59:36
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我不明白。如果没有安装该库,您将无法使用它。

标签: c perl wrapper portability suffix-tree


【解决方案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;

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

export LD_LIBRARY_PATH=/bar/baz:$LD_LIBRARY_PATH
[run your program]

【讨论】:

    猜你喜欢
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 2017-03-21
    相关资源
    最近更新 更多