如何将oracle-oci库添加到C++eclipse中

how to add oracle oci libraries to C++ eclipse

本文关键字:C++eclipse 添加 oracle-oci      更新时间:2023-10-16

我正在用C++为Oracle编写一个方法。我正在使用OCI库和Eclipse作为我的IDE。代码完全编译,但我得到了这个运行时错误:

"error while loading shared libraries: libocci.so.11.1: cannot open shared object file: No such file or directory "

我通过属性>c/c++通用/路径和符号>库包含了occi、clntsh和nnz11

我不知道如何修复这个错误,请帮助,谢谢

IDE不会像libocci.so.11.1那样你必须转换成像libocci.so

ln-s libocci.so.11.1

然后它将被重命名为libocci.so

然后编译代码

您的编译器找到库是因为您的项目可能指定了在哪里查找库(链接器命令行上的-L标志)。但是运行时链接器也需要找到库。

我想你是在linux上运行它。您有两个选项:

  1. 一个临时解决方案是在您的环境中定义LD_LIBRARY_PATH=full path to dir where libocci.so* is installed。我对eclipse不是很熟悉,但可能有一个设置可以更改运行时环境。您也可以设置LD_LIBRARY_PATH,然后在该env中运行ecplise。

    $export LD_LIBRARY_PATH=。。。

    $命令运行eclipse

  2. 一个永久性的解决方案是将目录的完整路径添加到文件/etc/ld.so.conf中,其中libs指向文件/etc/ld.seo.conf.d/oracle,或者更好:创建一个文件/etc/ld_seo.conf.d/oracle,并将路径放在该文件中,而不是其他文件。然后,作为root用户,运行ldconfig。

哇。最后我做了,通过一个变量并将其放入.bashrc

1-导出LD_LIBRARY_PATH=/opt/oracle/instantclient"库的路径",然后2-root@user:~#vi.bashrc"确保您处于root状态"3-LD_LIBRARY_PATH=/opt/oracle/instantclient/"将这两行添加到文件中"导出LD_LIBRARY_PATH

:)