以下是我的简单测试代码。 我用
编译了它 $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知之甚少。
答案 0 :(得分:1)
OCILIB共享库文件夹不在LD_LIBRARY_PATH变量....
答案 1 :(得分:0)
在编译时也可以输入:“ - static”:
gcc -static test.c -DOCI_IMPORT_LINKAGE -DOCI_CHARSET_ANSI -locilib
并正常运行程序:
./a.out