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:
                             unixus...@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

Reply via email to