Ошибка при загрузке разделяемых библиотек: libclntsh.so.11.1: невозможно открыть общий файл obj без такого файла. При работе от crontab.
Я выполнил свою программу c++, ее программу proc после компиляции proc. Я запустил следующую команду.
g++ filename.CPP -I $ORACLE_HOME/precomp/public -L $ORACLE_HOME/lib -lclntsh -o test
Я создал crontab для запуска его каждый мин.
$ crontab -l
* * * * * /home/test > /home/te.txt 2>&1
Я сделал символическую ссылку этой библиотеки. Но я получаю выше ошибки внутри te.txt
Я искал это за последние 2 дня, а также прошел аналогичный вопрос, но все же я не смог очистить ошибку.
Я не уверен с LD_Library_path
или .bash_profile
. как включить эту библиотеку.
Вы можете экспортировать путь библиотеки в свой.bash_profile, например
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
или вы можете скопировать ваш libclntsh.so в /usr/lib/or/lib
Если вы работаете в Linux (используя GNU Binutils), вы также можете скомпилировать путь к библиотеке прямо в двоичный файл. См. -Wl, - rpath =...
Но в любом случае (если вы не используете Oracle Instant Client lib), вы также должны экспортировать ORACLE_HOME env. var in crontab. В противном случае ваше приложение не сможет локализовать файлы.nls и.ora(tnsnames.ora).
/home/test > /home/te.txt 2>&1
не имеет смысла. Вместо этого у вас должно быть что-то вроде/bin/sh /path/to/script
и так далее.