我正在用C ++编写Oracle方法。我正在使用Eclipse的OCI库作为我的IDE。代码完全编译但我得到了这个运行时错误:
"error while loading shared libraries: libocci.so.11.1: cannot open shared object file: No such file or directory "
我通过属性>包括了occi和clntsh以及nnz11。 c / c ++ general /路径和符号>图书馆
我不知道如何修复此错误,请帮助谢谢
答案 0 :(得分:1)
IDE不会像libocci.so.11.1那样 你必须转换成像libocci.so
ln -s libocci.so.11.1
然后它将被重命名为libocci.so
然后编译代码
答案 1 :(得分:0)
您的编译器找到库,因为您的项目可能指定在哪里查找libs(链接器命令行上的-L标志)。但是运行时链接程序也需要找到库。
我假设您在Linux上运行它。您有两个选择:
临时解决方案是在您的环境中定义LD_LIBRARY_PATH = full path to dir where libocci.so* is installed
。我对eclipse不太熟悉,但可能有一个设置来改变运行时环境。您也可以设置LD_LIBRARY_PATH,然后在该环境中运行ecplise。
$ export LD_LIBRARY_PATH = ...
$命令运行eclipse
永久解决方案是添加目录的完整路径。 libs所在的文件是/etc/ld.so.conf,或者更好:创建一个文件/etc/ld.so.conf.d/oracle并将路径放在该文件中,没有别的。然后,以root身份运行ldconfig。
答案 2 :(得分:0)
1- export LD_LIBRARY_PATH = / opt / oracle / instantclient“库的路径”然后 2- root @ user:〜#vi .bashrc“确保你是root用户” 3- LD_LIBRARY_PATH = / opt / oracle / instantclient /“将这两行添加到文件中” export LD_LIBRARY_PATH
:)