Startup program and libocci.so.11.1: cannot open shared object file: No such file or directory

孤街醉人 提交于 2019-12-24 09:52:48

问题


please any one save my time .my application is written in c++ I was try to startup on boot in ubuntu linux,but when the program try to start it log error like:- error while loading shared libraries: libocci.so.11.1: cannot open shared object file: No such file or directory my program use oracle api:- my start service script which is written in /etc/init.d/sistartup:-

#!/bin/sh
# chkconfig: 345 99 10
OWNER=aki

case "$1" in
    'start')
        su $OWNER -c "/home/aki/sis_script/startsis.sh >> /home/aki/sis_script/sistartup.log 2>&1" &
       # touch /var/lock/subsys/sis_engine
        ;;
esac

startup script which is written on appropriate user is:- /home/aki/script/startsis.sh

  #!/bin/bash
    export TMP=/tmp
    export TMPDIR=$TMP
    export PATH=/usr/sbin:/usr/local/bin:$PATH
    # Start db_test
    ./home/aki/summ/db_test

My c++ sample test_db.cpp application write below:-

    #include <iostream>
    #include <occi.h>
    #include <string>
    using namespace oracle::occi;
    using namespace std;
    Environment *env;
    Connection  *con;
    int main(){

            string user;
            string passwd;
            string db;
            user ="sis";
            passwd = "sis10";
            db = "localhost:1521/sisdba";
            env = Environment::createEnvironment((Environment::Mode)(Environment::OBJECT|Environment::THREADED_MUTEXED));
                    con = env->createConnection(user, passwd, db);
                    while(1){
                        cout<<"Here i have some business which is related to oracle database "<<endl;
                    }
                    return 0;
}

After compiling the file in this way

g++ -o db_test test_db.cpp -I$ORACLE_HOME/rdbms/public -L$ORACLE_HOME/lib -locci -lclntsh

I see this error :- error while loading shared libraries: libocci.so.11.1: cannot open shared object file: No such file or directory


回答1:


If you have to provide -L$ORACLE_HOME/lib on the build command line, that suggests to me that the libraries aren't in any of the system's library paths, so they won't be found automatically at runtime.

You can confirm this theory by setting LD_LIBRARY_PATH=$ORACLE_HOME/lib before running your program; it should then work. However, depending on your requirements, this may be only worth a temporary workaround (and I'm assuming the $ORACLE_HOME is available!). A more long-term fix might be to add this path to /etc/ld.so.conf, though this then will affect all executables on your system.

Ultimately, you should follow the installation instructions for the library.




回答2:


did libocci.so.11.1 successfully installed?



来源:https://stackoverflow.com/questions/43249626/startup-program-and-libocci-so-11-1-cannot-open-shared-object-file-no-such-fil

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!