By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,480 Members | 1,144 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,480 IT Pros & Developers. It's quick & easy.

ActivePerl on Windows: DynaLoader.pm Dynamic Linking problem with DBD-Interbase

P: 1
All the usual Newbie stuff applies...

I have a Windows2000 Server with ActivePerl and a module (DBD-Interbase) that worked fine. Trying to duplicate the environment on Windows2003 Server for future upgrade, and this module won't work (other Perl scripts in IIS6 are OK, just not this Interbase module, which is critical).

The error comes from Dynaloader.pm file, which I've read through, and it says that it's a generic message about external Dynamic loading of a file. I don't know where to look for the problem to this, as the file being blamed is clearly in the location that the path refers to. The disclaimer in Dynaloader.pm specifically is: "# Many dynamic extension loading problems will appear to come from
# this section of code: XYZ failed at line 123 of DynaLoader.pm.
# Often these errors are actually occurring in the initialisation
# C code of the extension XS file. Perl reports the error as being
# in this perl code simply because this was the last perl code
# it executed."

Oh Yeah, I know nothing about "compiling" or "makefile" or C Programming, so I'm relying on Perl Mod Packages in a Windows environment, not Unix.

Before I got to this point (this error) I had installed ActivePerl 5.8 version, before finding out that this DBD-Interbase module wasn't available for the 5.8 builds, so I had to downgrade the version to 5.6, which corresponds roughly to what is working on my old Win2K server. I never did find an easy way to get rid of 5.8 before installing 5.6 overtop of it, so here's what I did, in case this is a cause of concern for the upcoming error message: 1) Deleted the Windows Registry keys for ActiveState and Perl and rebooted, 2) Renamed my d:\Perl directory structure to d:\Perl5_8 and rebooted, 3) Ran the install for ActivePerl 5.6 to install to the same directory where the newer version used to live = d:\Perl.

Here's the error I get when the script runs the "$sth->execute" command to read from the database, and I get it from the DOS Command Line as well as from IIS6 CGI Scripting, so I know it's not something specific to IIS:

>>>>>> Error Message >>>>>>>>
install_driver(InterBase) failed: Can't load 'd:/Perl/site/lib/auto/DBD/InterBase/InterBase.dll' for module DBD::InterBase: load_file:The specified module could not be found at d:/Perl/lib/DynaLoader.pm line 206.
Compilation failed in require at (eval 1) line 3.
Perhaps a required shared library or dll isn't installed where expected
<<<<<< End Of Message <<<<<<<

So does this mean it can't find the file InterBase.dll, which is clearly in this path at this location? Or has something failed in the installation of this perl mod and the DLL isn't "registered", and if so, how do I "register" it? Or could this be a problem with some other shared libary other than the Interbase.dll I'm trying to utilize, perhaps with something that got botched in the downgrade of Perl from 5.8 to 5.6? I've tried removing this DBD-Interbase Perl Mod and re-installing, and installing several different versions of it (0.44, 0.40, and 0.30) with same results.

Any help would be appreciated. Here's specific version numbers:
ActivePerl = 5.6.1 Binary build 638
DBI = 1.48
DBD-InterBase = 0.40 (or 0.44 or 0.30)
Oct 10 '06 #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.