2012-07-25 43 views
1

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

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

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

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

+0

我不明白。如果库未安装,则无法使用它。 – tripleee 2012-08-23 17:25:37

回答

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程序前壳的LD_LIBRARY_PATH被称为:

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