【问题标题】:error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory加载共享库时出错:libclntsh.so.11.1:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2016-04-10 10:35:33
【问题描述】:
我正在制作一个连接 oracle 数据库的 C 程序。我已经正确安装了 Oracle Instant Client 和 ocilib。
我确实编译了代码而没有任何错误,但是当我执行程序时出现以下错误。
./a.out: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory
如果有人知道如何解决,请写出来
谢谢你。
【问题讨论】:
标签:
c
oracle
oracle11g
oracle-call-interface
【解决方案1】:
您需要设置 LD_LIBRARY
export LD_LIBRARY_PATH=/path/instantclient:$LD_LIBRARY_PATH
喜欢
export LD_LIBRARY_PATH=/oracle/instantclient_21_4:$LD_LIBRARY_PATH
【解决方案2】:
是的,我通过将库的链接添加到 /usr/lib 来解决它。
使用以下命令。
sudo ln -s /home/INSTANT_CLIENT/lib/libclntsh.so.11.1 /usr/lib/libclntsh.so.11.1
【解决方案4】:
LIBPATH 环境变量应该指向包含 libclntsh 的 lib32 文件夹。
那么您需要在运行应用程序之前导出 LIBPATH 变量。
【解决方案5】:
确保已安装示例 CD。
确保环境变量 LD_LIBRARY_PATH 已设置,并且您登录的用户可以访问库文件(许可方式)。
如果您检查了这些并仍然收到错误,请发布以下输出:
strace ./a.out