Toon posts:

DBD::mysql wil niet compilen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem waar ik al drie dagen mee zit te kloten: ik krijg een error tijdens de make van de module DBD::mysql en ik weet niet hoe ik het moet oplossen. Ik heb ook Msql-Mysql-modules geprobeerd, maar ook daar krijg ik een error. Ik hoop dat iemand mij kan helpen.

Ik krijg de volgende errors:

DBD-mysql:
rm -f blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH="/usr/lib/mysql:/lib" /usr/bin/perl myld cc -shared dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.so -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/bin/ld: cannot find -lnss_files
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/mysql/mysql.so] Fout 1

hier kan ie dus voor de gcc -lnss_files niet vinden

Msql-Mysql-modules:
rm -f ../blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH="/usr/lib/mysql:/lib:/usr/lib:/usr/lib/gcc-lib/i486-suse-linux/3.2" cc -shared dbdimp.o mysql.o -L/usr/lib/mysql -o ../blib/arch/auto/DBD/mysql/mysql.so -L/usr/lib/mysql -lmysqlclient -lm -lz -lgz -L/usr/lib/gcc-lib/i486-suse-linux/3.2 -lgcc
/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/bin/ld: cannot find -lgz
collect2: ld returned 1 exit status
make[1]: *** [../blib/arch/auto/DBD/mysql/mysql.so] Fout 1
make[1]: Weggaan uit map `/home/fly/private/Msql-Mysql-modules-1.2219/mysql'
make: *** [subdirs] Fout 2

hier vindt ie -lgz niet.

Ik weet niet welke libraries of wat ik moet installeren hiervoor.
zlib heb ik al geinstalleerd, de perlmodule Data::Showtable niet, maar die kan ik ook niet installeren en op mijn andere twee linuxboxen werkt DBD::mysql gewoon goed, ook zonder de showtable module. Waarom wil ie op mijn server niet?? :?

alvast bedankt

Verwijderd

1) wat zijn de [i]exacte[i] specs van je machine? Distro, kernel, -devel packages, the works ...
2) Heb je al geprobeert om beide -l statements uit de Makefile te halen?
3) Moet je mischien een -L (+ -I) statement naar toevoegen aan je Makefile (aka, heb je eventueel de libraries op een alternatieve locatie geinstaleerd?)

Verwijderd

Topicstarter
1) Ik heb suse 8.1 met de laatste patches geinstalleerd.
2) euh :?
3) Alle libraries heb ik op de standaard locaties geinstalleerd.

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Verwijderd schreef op 04 november 2003 @ 13:54:
DBD-mysql:
rm -f blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH="/usr/lib/mysql:/lib" /usr/bin/perl myld cc -shared dbdimp.o mysql.o -o blib/arch/auto/DBD/mysql/mysql.so -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv
/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/bin/ld: cannot find -lnss_files
collect2: ld returned 1 exit status
make: *** [blib/arch/auto/DBD/mysql/mysql.so] Fout 1
Je mist libnss_files.so, die normaliter in /usr/lib staat. Op RH is ie onderdeel van glibc-devel
Msql-Mysql-modules:
rm -f ../blib/arch/auto/DBD/mysql/mysql.so
LD_RUN_PATH="/usr/lib/mysql:/lib:/usr/lib:/usr/lib/gcc-lib/i486-suse-linux/3.2" cc -shared dbdimp.o mysql.o -L/usr/lib/mysql -o ../blib/arch/auto/DBD/mysql/mysql.so -L/usr/lib/mysql -lmysqlclient -lm -lz -lgz -L/usr/lib/gcc-lib/i486-suse-linux/3.2 -lgcc
/usr/lib/gcc-lib/i486-suse-linux/3.2/../../../../i486-suse-linux/bin/ld: cannot find -lgz
collect2: ld returned 1 exit status
make[1]: *** [../blib/arch/auto/DBD/mysql/mysql.so] Fout 1
make[1]: Weggaan uit map `/home/fly/private/Msql-Mysql-modules-1.2219/mysql'
make: *** [subdirs] Fout 2

hier vindt ie -lgz niet.
libgz is een versie van libz gebruikt in het tijdperk dat iemand ELF nog moest uitvinden. SuSE heeft de vervelende neiging deze meuk nog steeds te installeren en te gebruiken. Die libs kwamen uit de libgr package als ik het me goed herinner, maar waarom deze nodig zijn is mij een raadsel : vanaf SuSE 6 staan ze allemaal op een standaard locatie (ipv /usr/X11R6/lib), maar libgz is al in geen jaren meer in gebruik.

Verwijderd

Topicstarter
ik heb die so's wel, alleen die heten .so.1 en .so.2 is dit hetzelfde??

Maar anyway, ik heb het probleem opgelost :). Die libraries bleken toch helemaal niet nodig te zijn (niet gek als ze bij de ene wel en bij de ander niet gebruikt worden).

ik heb
perl Makefile.PL --libs='-L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lresolv -lc'
gedaan (dus gewoon die -lgz en -nss_files weggelaten) en het werkte, dus ik ben weer blij :)
bedankt voor de hulp.

[ Voor 5% gewijzigd door Verwijderd op 05-11-2003 17:10 ]