Re: make test: dlopen error :can't load library ODBC.so
Jens Rehsack <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.dbi.sybase.devel |
|---|---|
| Message-ID | <[email protected]> |
On 05/10/10 02:06, Chunmei Wu wrote: > Hi everyone, > > OS: AIX > perl version: 5.0 > > After installed DBD-ODBC-1.21, I run 'make test', but failed 'can't load library' error: > t/20SqlServer...........ok 2/65install_driver(ODBC) failed: Can't load '/home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so' for module DBD::ODBC: dlopen: /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so: can't load library /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so103 /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so at /vobs/siebel/src/3rdparty/perl5.8/aix/lib/5.8.0/aix/DynaLoader.pm line 229. > at (eval 4) line 3 > Compilation failed in require at (eval 4) line 3. > Perhaps a required shared library or dll isn't installed where expected > at t/20SqlServer.t line 218 > > But i can run ldd for this library: > unixuser\@dsliaa05 #> ldd /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so > /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so needs: > /usr/lib/libc.a(shr_64.o) > /home/eng-sm/unixuser/claire/test/perl/unixodbc_install2.3.0_64/lib/libodbc.a(libodbc.so.1) > /unix > /usr/lib/libcrypt.a(shr_64.o) > /usr/lib/libpthread.a(shr_xpg5_64.o) > /usr/lib/libiconv.a(shr4_64.o) > > Can you help me? Thanks in advance! Looks to me like libperl.a is missing from the requirements list of ODBC.so. As long you don't have statically linked the perl runtime, this could be an issue. But the error reported is; > dlopen: /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so: can't load library /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so103 The file /home/eng-sm/unixuser/claire/test/perl/DBD-ODBC-1.21/blib/arch/auto/DBD/ODBC/ODBC.so103 is required for some reason. 'make test' runs with the same permissions as 'make' run, I assume. Looks to me like something went wrong with your build. I think it could be helpful (if no one else has a better proposal) to start fresh and record the entire make output in a file: $ perl Makefile.PL [flags ...] >log 2>&1 $ make >log 2>&1 $ make test >log 2>&1 If you add some flags to one of the lines, it might be good to echo the line first to the log and execute it then. /Jens