我有一个XS模块。使用./Build
构建后,Module.so
将放入blib/arch/auto/XS
目录。
在Module.pm
我有:
require XSLoader;
XSLoader::load( 'Module', $VERSION );
我运行程序为:
$ perl -Iblib/lib -MModule -e 'my $x; $x=1'
或
$ perl -Iblib -MModule -e 'my $x; $x=1'
在这两种情况下,都会使用先前安装到系统的模块。
我应该使用哪个选项来运行Module.so
中的blib/arch/auto
代码?
UPD
我尝试使用blib
中的模块,因为在使用XS
答案 0 :(得分:1)
我撬开xstut
:
perl -MExtUtils::Command::MM -e "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
然后here:
test_harness($verbose, @test_libs);
通过Test :: Harness通过$ verbose标志运行@ARGV上的测试。任何@test_lib都将被移植到测试的@INC。
所以我应该将两个路径都包含在@INC
中:
$ perl -Iblib/lib -Iblib/arch -MModule -e 'my $x; $x=1'
<强> UPD 强>
正如@Borodin所说,更好的解决方案是使用blib
模块:
$ perl -Mblib -MModule -e 'my $x; $x=1'