Автозагрузка программы и libocci.so.11.1: невозможно открыть общий объектный файл: нет такого файла или каталога

Пожалуйста, сохраните мое время. Мое приложение написано на C ++. Я пытался запускаться при загрузке в Ubuntu Linux, но когда программа пытается запустить его, регистрируется ошибка, как: —
ошибка при загрузке общих библиотек: libocci.so.11.1: невозможно открыть файл общего объекта: нет такого файла или каталога
моя программа использует oracle api: —
мой скрипт запуска службы, который написан в /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

Скрипт запуска, который написан на соответствующем пользователе:
/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

Мой пример c ++ test_db.cpp напишите ниже:

    #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;
}

После компиляции файла таким образом

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

Я вижу эту ошибку: —
ошибка при загрузке общих библиотек: libocci.so.11.1: невозможно открыть файл общего объекта: нет такого файла или каталога

1

Решение

Если вы должны предоставить -L$ORACLE_HOME/lib в командной строке сборки это говорит мне о том, что библиотеки не находятся ни в одном из системных путей к библиотекам, поэтому они не будут автоматически найдены во время выполнения.

Вы можете подтвердить эту теорию, установив LD_LIBRARY_PATH=$ORACLE_HOME/lib перед запуском вашей программы; это должно тогда работать. Однако, в зависимости от ваших требований, это может стоить только временного решения (и я предполагаю, что $ORACLE_HOME доступен!). Более долгосрочное решение может быть добавить этот путь к /etc/ld.so.conf, хотя тогда это повлияет на все исполняемые файлы в вашей системе.

В конечном итоге вы должны следовать инструкциям по установке библиотеки.

1

Другие решения

ли libocci.so.11.1 успешно установлен?

0

По вопросам рекламы [email protected]