./a.out:加载共享库时出错:libocilib.so.3:无法打开共享对象文件:没有这样的文件或目录

时间:2013-10-18 09:11:15

标签: oci

以下是我的简单测试代码。 我用

编译了它
      $gcc test.c -DOCI_IMPORT_LINKAGE -DOCI_CHARSET_ANSI -locilib

它编译成功,但是当我运行它时显示错误 -

     ./a.out: error while loading shared libraries: libocilib.so.3: cannot open shared object file: No such file or directory

我已将以下路径添加到我的bashrc文件中 -

       export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib
       export ORACLE_HOME=/usr/lib/oracle/11.2/client
       export TNS_ADMIN=/usr/lib/oracle/11.2/client/network/admin

#include "ocilib.h"

int main(void)
{
    OCI_Connection *cn;

    if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
        return EXIT_FAILURE;

   cn = OCI_ConnectionCreate("sam", "SYSTEM", "oracle", OCI_SESSION_DEFAULT);

   printf("Server major    version : %i\n",   OCI_GetServerMajorVersion(cn));
   printf("Server minor    version : %i\n",   OCI_GetServerMinorVersion(cn));
   printf("Server revision version : %i\n\n", OCI_GetServerRevisionVersion(cn));
   printf("Connection      version : %i\n\n", OCI_GetVersionConnection(cn));

   OCI_Cleanup();

   return EXIT_SUCCESS;

}

我不知道是什么原因。请帮忙。我对linux知之甚少。

2 个答案:

答案 0 :(得分:1)

OCILIB共享库文件夹不在LD_LIBRARY_PATH变量....

答案 1 :(得分:0)

在编译时也可以输入:“ - static”:

gcc -static test.c -DOCI_IMPORT_LINKAGE -DOCI_CHARSET_ANSI -locilib

并正常运行程序:

./a.out