2013-04-03 63 views
0

install_driver(ODBC)失败:无法应用程式载入由于ODBC驱动程序

无法加载 '/usr/local/lib/perl5/auto/DBD/ODBC/ODBC.so' 的模块 DBD :: ODBC:libodbc.so.1:无法打开共享对象文件:没有这样的文件 或目录位于/usr/lib/perl5/DynaLoader.pm第200行。at(eval 3) 第3行编译在require中失败在(EVAL 3)线3也许需要 共享库或DLL没有安装,其中在 M_BLACKLIST.pl线预期14

我使用最新的unixodbc dbi drvier。 基本上我使用centos 6.

+0

您确定您已经安装了unixODBC Driver Manager软件包吗?你自己建立了DBD :: ODBC,还是通过一个包安装了它? – bohica

+0

我已经通过软件包 – user1363308

+1

安装了DBD :: ODBC并且您是否安装了DBD :: ODBC依赖的unixodbc软件包。我不使用Centos,所以我不确定它使用哪个软件包管理器。您所遇到的错误说DBD :: ODBC依赖于unixodbc驱动程序管理器共享对象,并且在您的动态链接器路径中找不到它。您需要libodbc.so(来自unixodbc包)。做ldd /usr/local/lib/perl5/auto/DBD/ODBC/ODBC.so,你会看到它需要什么共享对象和什么没有找到。 – bohica

回答

0

请注意,最新的unixODBC内部版本将创建libodbc.so.2,在SQLLEN在一年前左右更改为api之后,数量会增加可能不是问题,但值得检查你实际拥有的libodbc.so。

+0

目前,我有以下使用libodbc.so: /usr/lib/libodbc.so /usr/lib/libodbc.so.2 /usr/lib/libodbc.so.2.0.0 在/ usr /本地/ lib/libodbc.so /usr/local/lib/libodbc.so.1 /usr/local/lib/libodbc.so.1.0.0 /usr/src/asterisk/unixODBC-2.2.12/DriverManager/。 libs/libodbc.so /usr/src/asterisk/unixODBC-2.2.12/DriverManager/.libs/libodbc.so.1 /usr/src/asterisk/unixODBC-2.2 .12/DriverManager/.libs/libodbc.so.1.0.0 请提示我如何解决问题 – user1363308

+1

我想象/ usr/local/lib不在您的动态链接程序搜索路径中,因为文件为ODBC.so要求是libodbc.so.1,并且在/ usr/local/lib中有。尝试导出LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/ usr/local/lib然后运行你的Perl。 – bohica