🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52427

PAR::Packer - problem z instalacją pod Windows / Strawberry Perl portable

#52427
From: Jarosław Lubczyński
Date: Mon, 27 Feb 2012 20:56
164 lines
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-mail

Show 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