Article View: pl.comp.lang.perl
Article #52427PAR::Packer - problem z instalacją pod Windows / Strawberry Perl portable
From: Jarosław Lubczyński
Date: Mon, 27 Feb 2012 20:56
Date: Mon, 27 Feb 2012 20:56
164 lines
7615 bytes
7615 bytes
Środowisko: Windows 7 Professional 64-bit (dla porządku, zapewne nie ma znaczenia) Perl: Strawberry portable 5.14.2.1 64-bit [ http://strawberryperl.com/releases.html ] Rozpakowałem zip'a do katalogu - powiedzmy - c:\myperl, w skrypcie wywołującym skrypt c:\myperl\bin\cpan.bat ustawiłem stosowne zmienne zgodnie z README.portable.txt No i zacząłem instalować moje ulubione moduły: cpan> install PAR Fetching with LWP: http://cpan.strawberryperl.com/authors/01mailrc.txt.gz .... Appending installation info to [...] RSCHUPP/PAR-1.005.tar.gz D:\ex\perl\portable\5.14.2.1-64\c\bin\dmake.exe install UNINST=1 -- OK cpan> ================================ so far so good... ================================ cpan> install PAR:Packer Running install for module 'PAR::Packer' Running make for R/RS/RSCHUPP/PAR-Packer-1.013.tar.gz Fetching with LWP: http://cpan.strawberryperl.com/authors/id/R/RS/RSCHUPP/PAR-Packer-1.013.tar.gz [...] Warning: prerequisite Getopt::ArgvFile 1.07 not found. Warning: prerequisite Module::ScanDeps 1.05 not found. [... instalacja w/w brakujących modułów zakończona sukcesem] CPAN.pm: Building R/RS/RSCHUPP/PAR-Packer-1.013.tar.gz cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm [... jeszcze parę cp's] cp lib/PAR/Filter/Bleach.pm blib\lib\PAR\Filter\Bleach.pm C:\myperl\perl\bin\perl.exe file2c.pl -s ..\script\par.pl my_par_pl.c load_my_par_pl C:\myperl\perl\bin\perl.exe sha1.c.PL gcc -c -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -I"C:\myperl\perl\lib\CORE" -DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 main.c windres -F pei-i386 -i winres\pp.rc -o winres\pp.res windres -o ppresource.coff winres\pp.res g++.exe main.o ppresource.coff -s -s -L"C:\myperl\perl\lib\CORE" -L"C:\myperl\c\lib" C:\myperl\perl\lib\CORE\libperl514.a C:\myperl\c\x86_64-w64-mingw32\lib\libmoldname.a C:\myperl\c\x86_64-w64-mingw32\lib\libkernel32.a C:\myperl\c\x86_64-w64-mingw32\lib\libuser32.a C:\myperl\c\x86_64-w64-mingw32\lib\libgdi32.a C:\myperl\c\x86_64-w64-mingw32\lib\libwinspool.a C:\myperl\c\x86_64-w64-mingw32\lib\libcomdlg32.a C:\myperl\c\x86_64-w64-mingw32\lib\libadvapi32.a C:\myperl\c\x86_64-w64-mingw32\lib\libshell32.a C:\myperl\c\x86_64-w64-mingw32\lib\libole32.a C:\myperl\c\x86_64-w64-mingw32\lib\liboleaut32.a C:\myperl\c\x86_64-w64-mingw32\lib\libnetapi32.a C:\myperl\c\x86_64-w64-mingw32\lib\libuuid.a C:\myperl\c\x86_64-w64-mingw32\lib\libws2_32.a C:\myperl\c\x86_64-w64-mingw32\lib\libmpr.a C:\myperl\c\x86_64-w64-mingw32\lib\libwinmm.a C:\myperl\c\x86_64-w64-mingw32\lib\libversion.a C:\myperl\c\x86_64-w64-mingw32\lib\libodbc32.a C:\myperl\c\x86_64-w64-mingw32\lib\libodbccp32.a C:\myperl\c\x86_64-w64-mingw32\lib\libcomctl32.a -o par.exe main.o:main.c:(.text+0x2b4f): undefined reference to `_imp__Perl_get_context' main.o:main.c:(.text+0x2d12): undefined reference to `_imp__Perl_newSVpv' main.o:main.c:(.text+0x31d1): undefined reference to `boot_DynaLoader' main.o:main.c:(.text+0x31e2): undefined reference to `_imp__Perl_newXS' main.o:main.c:(.text+0x31f6): undefined reference to `boot_Win32CORE' main.o:main.c:(.text+0x3253): undefined reference to `_imp__Perl_newXS_flags' main.o:main.c:(.text+0x4471): undefined reference to `_imp__Perl_gv_fetchpv' main.o:main.c:(.text+0x44e5): undefined reference to `_imp__Perl_av_fetch' main.o:main.c:(.text+0x4510): undefined reference to `_imp__Perl_sv_2pv_flags' main.o:main.c:(.text+0x4567): undefined reference to `_imp__Perl_sv_setpv' main.o:main.c:(.text+0x464a): undefined reference to `_imp__Perl_av_shift' main.o:main.c:(.text+0x467b): undefined reference to `_imp__Perl_mg_set' main.o:main.c:(.text+0x46e9): undefined reference to `_imp__Perl_croak_nocontext' main.o:main.c:(.text+0x477d): undefined reference to `_imp__Perl_dounwind' main.o:main.c:(.text+0x4798): undefined reference to `_imp__Perl_save_destructor_x' main.o:main.c:(.text.startup+0x26): undefined reference to `_imp__Perl_sys_init3' main.o:main.c:(.text.startup+0x2b): undefined reference to `_imp__PL_do_undump' main.o:main.c:(.text.startup+0x87): undefined reference to `_imp__Perl_safesysmalloc' main.o:main.c:(.text.startup+0xfc): undefined reference to `_imp__perl_parse' main.o:main.c:(.text.startup+0x110): undefined reference to `_imp__perl_destruct' main.o:main.c:(.text.startup+0x12c): undefined reference to `_imp__perl_free' main.o:main.c:(.text.startup+0x132): undefined reference to `_imp__Perl_sys_term' main.o:main.c:(.text.startup+0x141): undefined reference to `_imp__perl_alloc' main.o:main.c:(.text.startup+0x153): undefined reference to `_imp__perl_construct' main.o:main.c:(.text.startup+0x175): undefined reference to `_imp__perl_run' main.o:main.c:(.text.startup+0x1aa): undefined reference to `_imp__PL_memory_wrap' collect2: ld returned 1 exit status dmake: Error code 129, while making 'par.exe' dmake.exe: Error code 255, while making 'subdirs' RSCHUPP/PAR-Packer-1.013.tar.gz C:\myperl\c\bin\dmake.exe -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: RSCHUPP/PAR-Packer-1.013.tar.gz : make NO cpan> ================= (powyżej połamałem trochę linię wywołującą g++ i wyciąłem powtarzające się niezdefiniowane symbole dla większej czytelności). OK. Widać, że linkerowi brakuje jakiejś biblioteki (-ek). Tylko której(-ych)? Sądząc po znajomych nazwach niektórych symboli jest to biblioteka raczej baaardzo podstawowa. "Szukacz" (Agent Ransack) odnalazł kilka (te, których szukałem wyrywkowo) z ww symboli w pliku perl\lib\CORE\libperl514.a Pytanie zatem mam: W którym pliku mam dopisać ową bibliotekę tak, by MakeMaker mi tego pliku nie nadpisał? Tytułem prób i błędów dodałem -lperl514 do perl/lib/Config_heavy.pl (zmienne libs, perllibs, libs_nolargefiles, na końcu) i w wywołaniu pojawiła się owa biblioteka - ale undefined references pozostały bez zmian. Aha. W pliku Config_heavy.pl jest już zdefiniowana zmienna libperl='libperl514.a' ale jakoś nic z tego nie wynika :( W międzyczasie poczytałem dokumentację do PAR::Packera i założyłem Google coby porozglądać się po Sieci w temacie - z wiadomym skutkiem :). Any help? -- Pozdrawiam Jarek Lubczyński (eljot<NULL>90125 at gmail dot com) Nawiasy trójkątne z zawartością zbędne są There are 10 kinds of people: Those who understand binary and those who don't
Technical Details
Message-ID:
<jigqpt$6c8$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Jarosław Lubczyński <guess@who.com.pl> Newsgroups: pl.comp.lang.perl Subject: PAR::Packer - problem z instalacją pod Windows / Strawberry Perl portable Date: Mon, 27 Feb 2012 21:56:27 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 165 Message-ID: <jigqpt$6c8$1@inews.gazeta.pl> NNTP-Posting-Host: apn-46-76-3-167.dynamic.gprs.plus.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1330376318 6536 46.76.3.167 (27 Feb 2012 20:58:38 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Mon, 27 Feb 2012 20:58:38 +0000 (UTC) X-User: eljot_007 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit