Hi everybory,
Endvironment:
OS: Win7 Pro 64-bit (irrelevant I presume, just in case)
Perl: Strawberry portable 5.14.2.1 64-bit
[ http://strawberryperl.com/releases.html ]
I have:
1. Unpacked zip file into, saying, C:\myperl
2. Set env vars due to README.portable.txt
3. Started to install my favourite modules:
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.
[... required modules installed successfully ...]
CPAN.pm: Building R/RS/RSCHUPP/PAR-Packer-1.013.tar.gz
cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm
[... some more cps' here ...]
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>
=================
(I have broken command line and deleted repetative lines above for
better readability).
Oops... But OK, seems to me the linker couldn't find some symbols due to
one or more library missing in command line. But which one? Because of
lack of tool like Linux' 'nm' (*) I used Agent Ransack which found those
symbols in libperl514.a only. But of course it couldn't say whether the
library *defines* or *requires* those symbols. I do not know much about
mangled external symbols in Windows lib's with dynamic linking used, but
symbols '_imp__*' and other missing are present in perl\bin\perl514.dll
(and many others dll's but I guess it may be perl514.dll which provides
those symbols).
*******************
So question is:
*******************
Which library supplies missing symbols listed above?
Is it perl514.dll?
If so, how to make linker to see the library?
or
Which (config?) file(s) I must modify to make the problem extinct
permanently?
Is it perl/lib/Config_heavy.pl?
Which line(s) must I edit?
(*) is any similar tool to nm which recognizes format of *.a files on
Wins (made by mingw I think)? Cygwin's nm (2.22) doesn't, Linux' nm
(2.17) either, as one may expect...
Any help will be appreciated.
--
Greetings
Jarek Lubczyński
There are 10 kinds of people:
Those who understand binary and those who don't