Perl 由于ODBC驱动程序,无法加载应用程序

Perl 由于ODBC驱动程序,无法加载应用程序,perl,odbc,perl-module,Perl,Odbc,Perl Module,安装驱动程序(ODBC)失败: 无法为模块加载“/usr/local/lib/perl5/auto/DBD/ODBC/ODBC.so” DBD::ODBC:libodbc.so.1:无法打开共享对象文件:没有这样的文件 或位于/usr/lib/perl5/DynaLoader.pm第200行的目录。at(评估3) 第3行编译在(eval 3)第3行的require中失败。也许是 所需的共享库或dll未安装在预期的位置 M_BLACKLIST.pl第14行 我正在使用最新的unixodbc dbi

安装驱动程序(ODBC)失败:

无法为模块加载“/usr/local/lib/perl5/auto/DBD/ODBC/ODBC.so” DBD::ODBC:libodbc.so.1:无法打开共享对象文件:没有这样的文件 或位于/usr/lib/perl5/DynaLoader.pm第200行的目录。at(评估3) 第3行编译在(eval 3)第3行的require中失败。也许是 所需的共享库或dll未安装在预期的位置 M_BLACKLIST.pl第14行

我正在使用最新的unixodbc dbi drvier。
基本上我使用的是centos 6。

请注意,最新的unixODBC版本将创建libodbc。因此。2,在大约一年前将SQLLEN更改为api后,该数字增加可能不是问题,但值得检查一下libodbc。因此,您实际拥有的是什么。

您确定已安装unixODBC驱动程序管理器包吗?您是自己构建DBD::ODBC还是通过软件包安装的?我已经通过软件包安装了DBD::ODBC,您是否安装了DBD::ODBC所依赖的unixodbc软件包。我不使用Centos,所以我不确定它使用什么包管理器。您收到的错误表明DBD::ODBC依赖于unixodbc驱动程序管理器共享对象,并且在动态链接器路径中找不到该对象。您需要libodbc.so(来自unixodbc包)。执行ldd/usr/local/lib/perl5/auto/DBD/ODBC/ODBC.so,您将看到它需要什么共享对象以及找不到什么。尝试键入“yum list installed”并将其导入grep-i unixodbc,例如yum list installed | grep-i unixodbc。它输出什么?ldd/usr/local/lib/perl5/auto/DBD/ODBC/ODBC.so linux gate.so.1=>(0x001a2000)libodbc.so.1=>未找到libc.so.6=>/lib/libc.so.6(0x003a0000)/lib/ld linux.so.2(0x00912000)目前我使用的libodbc.so:/usr/lib/libodbc.so/usr/lib/libodbc.so.2/usr/lib/libodbc.so.2.0/usr/local/libodbc.so/usr/local/libodbc.so.1/local/lib/libodbc.so.1.0.0/usr/src/asterisk/unixODBC-2.2.12/drivermanger/.libs/libodbc/lib.so/usr/src/unixODBC/usr/src/asterisk/unixODBC-2.2.12/DriverManager/.libs/libodbc.so.1.0.0请建议我如何解决我想象的问题/usr/local/lib不在您的动态链接器搜索路径上,因为ODBC.so需要的文件是libodbc.so.1,而您在/usr/local/lib中有这个文件。尝试执行导出LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib,然后运行Perl。