Try force reinstall these two modules in the system where are getting this error message. DBI, DBD::mysql
1)If Perl was compiled with gcc or egcs, but MySQL was compiled with another compiler or on another system, an error message like this is very likely when running ``Make test'': t/00base............install_driver(mysql) failed: Can't load '../blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: ../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: _umoddi3 at /usr/local/perl-5.005/lib/5.005/i586-linux-thread/DynaLoader.pm line 168. This means, that your linker doesn't include libgcc.a. You have the following options: The solution is telling the linker to use libgcc. Run gcc --print-libgcc-file to determine the exact location of libgcc.a or for older versions of gcc gcc -v to determine the directory. If you know the directory, add a -L<directory> -lgcc
2)There are known problems with shared versions of libmysqlclient, at least on some Linux boxes. If you receive an error message similar to install_driver(mysql) failed: Can't load '/usr/lib/perl5/site_perl/i586-linux/auto/DBD/mysql/mysql.so' for module DBD::mysql: File not found at /usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm line 166 then this error message can be misleading: It's not mysql.so that fails being loaded, but libmysqlclient.so! The usual problem is that this file is located in a directory like /usr/lib/mysql where the linker doesn't look for it. The best workaround is using a statically linked mysqlclient library, for example /usr/lib/mysql/libmysqlclient.a You force linking against this file by replacing -L/usr/lib/mysql -lmysqlclient with /usr/lib/mysql/libmysqlclient.a
In reply to Re: cannot open shared object file
by vinoth.ree
in thread cannot open shared object file
by artperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |