2012-10-24 124 views
1

我以搜索的方式創建了構建腳本,它會將所有項目依賴項放置在目標文件夾中。該目標文件夾將位於項目根目錄中。這個目標文件夾包含bin,lib文件夾。在lib文件夾裏面,所有依賴關係都在那裏軟件包在Perl中無法識別

我已經設置路徑搜索爲:

export PERL5LIB="$PWD/target/lib/perl5:$PWD/target/lib/perl5/x86_64-linux:$PWD/targer/lib/perl5/x86_64-linux-gnu-thread-multi" 

當我建我的項目是扔以下錯誤。

無法找到Clone.pm在@公司(@公司包含:LIB /家庭/ smopuru /鴿/目標/ lib中/的perl5 /家庭/ smopuru /鴿/目標/ lib中/的perl5/x86_64的-linux/home/smopuru/pigeon/targer/lib/perl5/x86_64-linux-gnu-thread-multi lib/home/smopuru/pigeon/target/lib/perl5/home/smopuru/pigeon/target/lib/perl5/x86_64-linux/home/smopuru/pigeon/targer/lib/perl5/x86_64-linux-gnu-thread-multi /home/smopuru/pigeon/target/lib/site_perl/5.14.2/x86_64-linux/home/smopuru/pigeon/target/lib/site_perl/5.14.2 /home/smopuru/pigeon/target/lib/5.14.2/x86_64-linux /home/smopuru/pigeon/target/lib/5.14.2。)at lib/Pigeon/Compiler.pm line 29,<> line 1.

在@INC中找不到Mouse.pm(@INC包含:lib/home/smopuru/pigeon/target/lib/perl5/home/smopuru/pigeon/target/lib/perl5/x86_64-linux/home/smopuru/pigeon/targer/lib/perl5/x86_64-linux-gnu-thread-multi lib/home/smopuru/pigeon/target/lib/perl5/home/smopuru/pigeon/target/lib/perl5/x86_64-linux/home/smopuru/pigeon/targer/lib/perl5/x86_64-linux-gnu-thread-multi /home/smopuru/pigeon/target/lib/site_perl/5.14.2/x86_64-linux/home/smopuru/peaton/target/lib/site_perl /5.14.2/home/smopuru/pigeon/target/lib/5.14.2/x86_64-linux/home/smopuru/pigeon/target/lib/5.14.2。)at lib/Pigeon/Compiler.pm line 29,< > line 1.

我確定這兩個文件都可用。我用來搜索的命令:

find target/lib/ -name Clone.pm target/lib/perl5/x86_64-linux-gnu-thread-multi/Clone.pm 
find target/lib/ -name Mouse.pm target/lib/perl5/x86_64-linux-gnu-thread-multi/Mouse.pm target/lib/perl5/x86_64-linux-gnu-thread-multi/Test/Mouse.pm 
+0

[@INC Perl-無法在@INC中找到Class/CSV.pm](http://stackoverflow.com/questions/11780324/inc-perl-cant-locate-class- csv-pm-in-inc) –

回答

2
  1. 有一個在你的PERL5LIB一個錯字 - 你對路徑之一,而不是「目標」,「targer」。這就是Clone.pm錯過的原因。

  2. Mouse.pm是.../something/in/your/path/Test/而非.../something/in/your/path這意味着你要麼需要use Test::Mouse;在腳本或移動Mouse.pm在文件系統文件上一級目錄。

+0

感謝您發現拼寫錯誤,現在我收到以下錯誤目標/ lib/perl5/x86_64-linux-gnu-thread-multi/auto/version/vxs/vxs.so:undefined symbol: Perl_Gthr_key_ptr – Sreedhar

+1

您試圖在不兼容的perl版本(不同的平臺或不同的perl版本)上運行編譯的代碼。您無法這樣做。你將不得不打包一個Perl解釋器與你的發行版(檢出[PAR :: Packer](https://metacpan.org/module/PAR::Packer)),或者使用自動構建系統來正確構建你的依賴關係。 – friedo