2012-10-24 4 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" 

.

@ INC에서 Clone.pm을 (@ INC 포함 찾을 수 없습니다 : lib 디렉토리/홈/smopuru/비둘기/대상/lib 디렉토리/perl5의/홈/smopuru/비둘기/대상/lib 디렉토리/perl5가/x86_64에 -linux/home/smopuru/lib/perl5/x86_64-linux-gnu-thread-multi lib/home/smopuru/pigeon/target/lib/perl5/home/smopuru/pigeon/target/lib/perl5/x86_64에-리눅스/홈/smopuru/비둘기/targer/lib 디렉토리/perl5의/x86_64에-리눅스 GNU 스레드 멀티 /home/smopuru/pigeon/target/lib/site_perl/5.14.2/x86_64-linux/홈/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.) lib/Pigeon/Compiler.pm 라인 (29), <> 라인 1.

@INC에서 Mouse.pm을 찾을 수 없습니다 (@INC에 lib/home/smopuru/pigeon/target/lib/perl5/home/smopuru/pigeon/target/lib/perl5/x86_64-linux/home/smopuru/비둘기/targer/lib 디렉토리/perl5의/x86_64에-리눅스 GNU 스레드 멀티 lib 디렉토리/홈/smopuru/비둘기/대상/lib 디렉토리/perl5의/홈/smopuru/비둘기/대상/lib 디렉토리/perl5의/x86_64에-리눅스/홈/smopuru/비둘기/targer/lib 디렉토리/perl5의/x86_64에-리눅스 GNU 스레드 멀티 /home/smopuru/pigeon/target/lib/site_perl/5.14.2/x86_64-linux/홈/smopuru/비둘기/대상/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.) lib 디렉토리/비둘기/Compiler.pm 라인 (29), <에서 > line 1

이 두 파일을 사용할 수 있습니다. 내가 검색하는 데 사용되는 명령 : 당신의 PERL5LIB에 오타가있어

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의 클래스/CSV.pm를 찾을 수 없습니다]의 중복 가능성 (http://stackoverflow.com/questions/11780324/inc-perl-cant-locate-class- csv-pm-in-inc) –

답변

2
  1. - 당신이 경로 중 하나에 대신 "대상"의 "targer"가. 그것이 Clone.pm miss의 이유입니다.

  2. Mouse.pm은 파일 시스템에서 하나의 디렉토리를 파일 스크립트에서 use Test::Mouse; 필요하거나 Mouse.pm를 이동하거나 의미 .../something/in/your/path/Test/보다는 .../something/in/your/path입니다.

+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

관련 문제