REPOST: Unable to compile DBD::mysql-3.0002 on Win32

REPOST: Unable to compile DBD::mysql-3.0002 on Win32

am 30.12.2005 20:15:18 von Will Hawes

Reposted - the original appears not to have made it to the list.

-------- Original Message --------
Subject: Unable to compile DBD::mysql-3.0002 on Win32
Date: Sat, 24 Dec 2005 09:36:13 +0000
From: Will Hawes
To: perl-help@lists.mysql.com

I'm using Windows XP SP2 with Perl 5.8.7, MySQL 5.0.16, dmake and MinGW.
I have DBI 1.48 installed (and have also tried 1.50 with the same
result). DBD-mysql-3.0002 refuses to compile as follows:

C:\Perl\DBD-mysql-3.0002>perl Makefile.PL "--libs=-LC:/mysql/5.0/lib/opt
-lmysql
client" --cflags="-IC:/mysql/5.0/include
-IC:/Perl/site/5.8.7/lib/auto/DBI" --testuser=myuser
--testpassword=mypassword
I will use the following settings for compiling and testing:

cflags (User's choice) = -IC:/mysql/5.0/include
-IC:/Perl/site/5.8.7/li
b/auto/DBI
embedded (guessed ) =
libs (User's choice) = -LC:/mysql/5.0/lib/opt -lmysqlclient
nocatchstderr (default ) = 0
nofoundrows (default ) = 0
ssl (guessed ) = 0
testdb (default ) = test
testhost (default ) =
testpassword (default ) = mypassword
testsocket (default ) =
testuser (default ) = myuser

To change these settings, see 'perl Makefile.PL --help' and
'perldoc INSTALL'.

Note (probably harmless): No library found for -lmysqlclient
Using DBI 1.48 (for perl 5.008007 on MSWin32-x86-multi-thread) installed
in c:/P
erl/site/5.8.7/lib/auto/DBI/
Writing Makefile for DBD::mysql

C:\Perl\DBD-mysql-3.0002>dmake
gcc -c -Ic:/Perl/site/5.8.7/lib/auto/DBI/ -IC:/mysql/5.0/include
-IC:/Perl/site
/5.8.7/lib/auto/DBI -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -s -O2 -DWIN32
-DHAVE_DE
S_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-fno-strict-aliasing -DPERL
_MSVCRT_READFIX -s -O2 -DVERSION=\"3.0002\" -DXS_VERSION=\"3.0002\"
"-IC:\p
erl\5.8.7\lib\CORE" mysql.c
Running Mkbootstrap for DBD::mysql ()
C:\Perl\5.8.7\bin\perl.exe -MExtUtils::Command -e chmod 644 mysql.bs
dlltool --def mysql.def --output-exp dll.exp
C:\Perl\5.8.7\bin\perl.exe myld g++ -o
blib\arch\auto\DBD\mysql\mysql.dll -Wl,--
base-file -Wl,dll.base -mdll -s -L"c:\perl\5.8.7\lib\CORE"
-L"C:\MinGW\lib" dbdi
mp.o mysql.o -Wl,--image-base,0x1570000
C:\perl\5.8.7\lib\CORE\libperl58.a C
:\MinGW\lib\libmsvcrt.a C:\MinGW\lib\libmoldname.a
C:\MinGW\lib\libkernel32.a C:
\MinGW\lib\libuser32.a C:\MinGW\lib\libgdi32.a
C:\MinGW\lib\libwinspool.a C:\Min
GW\lib\libcomdlg32.a C:\MinGW\lib\libadvapi32.a
C:\MinGW\lib\libshell32.a C:\Min
GW\lib\libole32.a C:\MinGW\lib\liboleaut32.a C:\MinGW\lib\libnetapi32.a
C:\MinGW
\lib\libuuid.a C:\MinGW\lib\libws2_32.a C:\MinGW\lib\libmpr.a
C:\MinGW\lib\libwi
nmm.a C:\MinGW\lib\libversion.a C:\MinGW\lib\libodbc32.a dll.exp
dbdimp.o(.text+0x6ff): In function `mysql_dr_connect':
C:/Perl/DBD-mysql-3.0002/dbdimp.c:1275: undefined reference to
`mysql_init@4'
dbdimp.o(.text+0x79c):C:/Perl/DBD-mysql-3.0002/dbdimp.c:1427 : undefined
referenc
e to `mysql_real_connect@32'
dbdimp.o(.text+0x9b6):C:/Perl/DBD-mysql-3.0002/dbdimp.c:1295 : undefined
referenc
e to `mysql_options@12'
dbdimp.o(.text+0xa78):C:/Perl/DBD-mysql-3.0002/dbdimp.c:1305 : undefined
referenc
e to `mysql_options@12'
dbdimp.o(.text+0xb3e):C:/Perl/DBD-mysql-3.0002/dbdimp.c:1316 : undefined
referenc
e to `mysql_options@12'
dbdimp.o(.text+0xc0e):C:/Perl/DBD-mysql-3.0002/dbdimp.c:1327 : undefined
referenc
e to `mysql_options@12'
dbdimp.o(.text+0xe9c):C:/Perl/DBD-mysql-3.0002/dbdimp.c:1419 : undefined
referenc
e to `mysql_options@12'
dbdimp.o(.text+0x175f): In function `mysql_db_login':
C:/Perl/DBD-mysql-3.0002/dbdimp.c:1572: undefined reference to
`mysql_error@4'
....

The error messages continue in a similar fashion for quite a while longer.

Googling seems to indicate that this is because the linker cannot find
the libraries it needs - but I've build the command line for "perl
Makefile.PL" in accordance with the DBD::mysql docs and "--libs"
contains the correct path to the directory containing mysqlclient.lib.

MySQL was installed using "Full Installation" with a precompiled binary.
C:\mysql\5.0\lib\opt contains the following:

libmysql.dll
libmysql.lib
mysqlclient.lib
mysys.lib
mysys_tls.lib
mysys-max.lib
regex.lib
strings.lib
zlib.lib

"mysql -V" gives the following:

mysql Ver 14.12 Distrib 5.0.16, for Win32 (ia32)

"perl -V" gives the following:

Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=de
fine
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-s -O2 -DWIN32 -DHAVE_DES_FCRYPT
-DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX',
optimize='-s -O2',
cppflags='-DWIN32'
ccversion='', gccversion='3.4.2', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long
long', lseek
size=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='g++', ldflags ='-s -L"c:\perl\5.8.7\lib\CORE" -L"C:\MinGW\lib"'
libpth=C:\MinGW\lib
libs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool
-lcomdlg32
-ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr
-lwinmm
-lversion -lodbc32
perllibs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32
-lwinspool -lcomdl
g32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32
-lmpr -lw
inmm -lversion -lodbc32
libc=-lmsvcrt, so=dll, useshrplib=yes, libperl=libperl58.a
gnulibc_version='undef'
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-mdll -s -L"c:\perl\5.8.7\lib\CORE"
-L"C:\MinGW\l
ib"'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
Built under MSWin32
Compiled at Dec 22 2005 12:17:48
@INC:
c:/Perl/5.8.7/lib
c:/Perl/site/5.8.7/lib
.

Any guidance would be appreciated.



--
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe: http://lists.mysql.com/perl?unsub=gcdmp-msql-mysql-modules@m .gmane.org