http://www.perlmonks.org?node_id=1017603

tobias_hofer has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

In the current project I got to develop with Perl Version 5.10.0 on Windows 7 - Strawberryperl -. As some modules are missing I wanted to intall them by the cpan.bat: DBI, SQLite and SQLite_File

During the installation the process was complaining that I am using an old version of perl and also the modules are somewhat out-of-date.

However, at the linking process it was throwing an error that it could not find a reference. I do not know where this reference can be found (sources), and actually when it comes to compilation I am quite sure that the dependencies are solved, else there would be an error earlier. So I am wondering what to do next?

I appreciate any help on this, as I am stuck in this issue and honestly do not know what to do!

Best regards!
Tobias

1# Update:
I gave a try with older version of DBI: 1.607,1.608,1.609 and finally 1.601. Still got the same linker error :-(
Update to higher Perl Version not possible as 5.10.0 is used in whole company.

2# Update:
Updated MakeMaker, forced installation due to 2 failed tests.
Tried to install DBI by cpan -> same linker error.
Tried to install manually -> same linker error by dmake run.

3# Update: -- Solution found! --
Yes.. got it! I am so sorry for troubling all you Monks!
I got one more installation of MinGW on my System. Installed at C:\MinGW\.
However, although this installtion is not mentioned in the system PATH, doing
a dmake run will refer to it. As versions are differnt:
Strawberryperl 5.10.0 comes with gcc 3.4.5
My systems has installed gcc 4.7.2
it is quite likely that compilation and/or linking it will break at some point.
Thanks a lot to all you monks out there!!!

Here a shorten print-out on the command-line installing the DBI package

cpan> install DBI Fetching with LWP: http://cpan.strawberryperl.com/authors/01mailrc.txt.gz Fetching with LWP: http://cpan.strawberryperl.com/modules/02packages.details.txt.gz Fetching with LWP: http://cpan.strawberryperl.com/modules/03modlist.data.gz Creating database file ... Gathering information from index files ... Populating database tables ... Done! Running install for module 'DBI' Running make for T/TI/TIMB/DBI-1.623.tar.gz Fetching with LWP: http://cpan.strawberryperl.com/authors/id/T/TI/TIMB/DBI-1.623.tar.gz Fetching with LWP: http://cpan.strawberryperl.com/authors/id/T/TI/TIMB/CHECKSUMS Checksum for C:\strawberry\cpan\sources\authors\id\T\TI\TIMB\DBI-1.623 +.tar.gz o Scanning cache C:\strawberry\cpan\build for sizes DONE CPAN.pm: Going to build T/TI/TIMB/DBI-1.623.tar.gz *** You are using a perl configured with threading enabled. *** You should be aware that using multiple threads is *** not recommended for production environments. Your perl was compiled with gcc (version 3.4.5), okay. Creating test wrappers for DBD::Gofer: t/zvg_01basics.t t/zvg_02dbidrv.t t/zvg_03handle.t [...] t/zvxnp_52dbm_complex.t t/zvxnp_85gofer.t Creating test wrappers for DBD::Gofer + DBI::SQL::Nano + DBI::PurePerl +: t/zvxgnp_48dbi_dbd_sqlengine.t t/zvxgnp_49dbd_file.t t/zvxgnp_50dbm_simple.t t/zvxgnp_51dbm_file.t t/zvxgnp_52dbm_complex.t t/zvxgnp_85gofer.t Checking if your kit is complete... Looks good Warning: prerequisite ExtUtils::MakeMaker 6.48 not found. We have 6.42 +. Warning: prerequisite File::Spec 3.31 not found. We have 3.2501. Warning: prerequisite Test::Simple 0.90 not found. We have 0.74. I see you're using perl 5.010000 on MSWin32-x86-multi-thread, okay +. Remember to actually *read* the README file! Use 'make' to build the software (dmake or nmake on Windows). Then 'make test' to execute self tests. Then 'make install' to install the DBI and then delete this workin +g directory before unpacking and building any DBD::* drivers. Windows users need to use the correct make command. That may be nmake or dmake depending on which Perl you are using. If using the Win32 ActiveState build then it is recommended that y +ou use the ppm utility to fetch and install a prebuilt DBI instead. Writing Makefile for DBI C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command" -e mkpath blib\l +ib\DBI C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e rm_f blib\lib\D +BI\Changes .pm C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp Changes blib +\lib\DBI\C hanges.pm cp lib/DBI/DBD/SqlEngine/HowTo.pod blib\lib\DBI\DBD\SqlEngine\HowTo.po +d cp dbd_xsh.h blib\arch\auto\DBI\dbd_xsh.h cp dbivport.h blib\arch\auto\DBI\dbivport.h cp Driver_xst.h blib\arch\auto\DBI\Driver_xst.h cp lib/DBD/Proxy.pm blib\lib\DBD\Proxy.pm cp lib/DBI/Gofer/Response.pm blib\lib\DBI\Gofer\Response.pm cp lib/DBI/Gofer/Transport/Base.pm blib\lib\DBI\Gofer\Transport\Base.p +m cp lib/DBI/Util/_accessor.pm blib\lib\DBI\Util\_accessor.pm cp lib/DBD/DBM.pm blib\lib\DBD\DBM.pm [...] cp lib/DBI/PurePerl.pm blib\lib\DBI\PurePerl.pm cp lib/DBD/ExampleP.pm blib\lib\DBD\ExampleP.pm cp lib/DBI/ProfileData.pm blib\lib\DBI\ProfileData.pm C:\strawberry\perl\bin\perl.exe -p -e "s/~DRIVER~/Perl/g" .\Driver.xst + > Perl.xs i C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp + -typemap C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap Perl.xs > P +erl.xsc && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv Perl.xsc Pe +rl.c Running Mkbootstrap for DBI () C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod 644 DBI.b +s C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"DBI\", 'DLBASE' => 'DBI', 'DL_FUNCS' => +{ }, 'FUN CLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp DBI.bs blib\ +arch\auto\ DBI\DBI.bs C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod 644 blib\ +arch\auto\ DBI\DBI.bs gcc -c -IC:\strawberry\c\include -s -O2 -DWIN32 -DHAVE_DES_FCRY +PT -DPERL_ IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCR +T_READFIX -s -O2 -DVERSION=\"1.623\" -DXS_VERSION=\"1.623\" "-IC:\strawber +ry\perl\li b\CORE" -W -Wall -Wpointer-arith -Wbad-function-cast -Wno-comment -Wn +o-sign-com pare -Wno-cast-qual -Wmissing-noreturn -Wno-unused-parameter Perl.c Perl.c: In function `XS_DBD__Perl__dr_dbixs_revision': Perl.c:73: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__dr_discon_all_': Perl.c:97: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__dr_data_sources': Perl.c:125: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db__login': Perl.c:168: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_selectall_arrayref': Perl.c:213: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_selectrow_arrayref': Perl.c:280: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_do': Perl.c:364: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_last_insert_id': Perl.c:408: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_commit': Perl.c:444: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_rollback': Perl.c:468: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_disconnect': Perl.c:492: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_STORE': Perl.c:527: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_FETCH': Perl.c:556: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_DESTROY': Perl.c:582: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__db_take_imp_data': Perl.c:653: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st__prepare': Perl.c:734: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_bind_col': Perl.c:800: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_bind_param': Perl.c:858: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_bind_param_inout': Perl.c:907: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_execute': Perl.c:962: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_execute_for_fetch': Perl.c:1003: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_fetchrow_arrayref': Perl.c:1036: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_fetchrow_array': Perl.c:1062: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_fetchall_arrayref': Perl.c:1098: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_finish': Perl.c:1140: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_blob_read': Perl.c:1177: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_STORE': Perl.c:1222: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_FETCH_attrib': Perl.c:1251: warning: unused variable `Perl___notused' Perl.c: In function `XS_DBD__Perl__st_DESTROY': Perl.c:1280: warning: unused variable `Perl___notused' Perl.c: In function `boot_DBD__Perl': Perl.c:1339: warning: unused variable `Perl___notused' C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp + -typemap C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap DBI.xs > DB +I.xsc && C :\strawberry\perl\bin\perl.exe -MExtUtils::Command -e mv DBI.xsc DBI.c gcc -c -IC:\strawberry\c\include -s -O2 -DWIN32 -DHAVE_DES_FCRY +PT -DPERL_ IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCR +T_READFIX -s -O2 -DVERSION=\"1.623\" -DXS_VERSION=\"1.623\" "-IC:\strawber +ry\perl\li b\CORE" -W -Wall -Wpointer-arith -Wbad-function-cast -Wno-comment -Wn +o-sign-com pare -Wno-cast-qual -Wmissing-noreturn -Wno-unused-parameter DBI.c DBI.xs: In function `dbih_logmsg': DBI.xs:895: warning: unused variable `my_perl' DBI.xs: In function `dbih_clearcom': DBI.xs:1632: warning: unused variable `Perl___notused' DBI.xs: In function `dbih_get_fbav': DBI.xs:1807: warning: unused variable `Perl___notused' DBI.xs: In function `dbih_set_attr_k': DBI.xs:2104: warning: unused variable `Perl___notused' DBI.xs:2104: warning: unused variable `Perl___notused' DBI.xs: In function `dbih_get_attr_k': DBI.xs:2243: warning: unused variable `Perl___notused' DBI.xs: In function `dbi_dopoptosub_at': DBI.xs:2605: warning: unused variable `my_perl' DBI.xs: In function `log_where': DBI.xs:2687: warning: unused variable `Perl___notused' DBI.xs: In function `XS_DBI_dispatch': [...] DBI.c:6263: warning: unused variable `Perl___notused' DBI.c: In function `boot_DBI': DBI.c:6289: warning: unused variable `Perl___notused' dlltool --def DBI.def --output-exp dll.exp g++ -o blib\arch\auto\DBI\DBI.dll -Wl,--base-file -Wl,dll.base -mdll - +s -L"C:\st rawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" DBI.o -Wl,--image-base +,0x202e000 0 C:\strawberry\perl\lib\CORE\libperl510.a C:\strawberry\c\lib\libmsv +crt.a C:\s trawberry\c\lib\libmoldname.a C:\strawberry\c\lib\libkernel32.a C:\str +awberry\c\ lib\libuser32.a C:\strawberry\c\lib\libgdi32.a C:\strawberry\c\lib\lib +winspool.a C:\strawberry\c\lib\libcomdlg32.a C:\strawberry\c\lib\libadvapi32.a C +:\strawber ry\c\lib\libshell32.a C:\strawberry\c\lib\libole32.a C:\strawberry\c\l +ib\libolea ut32.a C:\strawberry\c\lib\libnetapi32.a C:\strawberry\c\lib\libuuid.a + C:\strawb erry\c\lib\libws2_32.a C:\strawberry\c\lib\libmpr.a C:\strawberry\c\li +b\libwinmm .a C:\strawberry\c\lib\libversion.a C:\strawberry\c\lib\libodbc32.a C: +\strawberr y\c\lib\libodbccp32.a dll.exp /mingw/lib/dllcrt2.o:dllcrt1.c:(.text+0xe5): undefined reference to `_ +_dyn_tls_i nit_callback' collect2: ld returned 1 exit status dmake.EXE: Error code 129, while making 'blib\arch\auto\DBI\DBI.dll' TIMB/DBI-1.623.tar.gz C:\strawberry\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: TIMB/DBI-1.623.tar.gz : make NO cpan>