Ошибка загрузки общих библиотек libclntsh.so.11.1 не может открыть

0

Ошибка при загрузке разделяемых библиотек: 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. как включить эту библиотеку.

  • 0
    Команда /home/test > /home/te.txt 2>&1 не имеет смысла. Вместо этого у вас должно быть что-то вроде /bin/sh /path/to/script и так далее.
Теги:
crontab

2 ответа

4

Вы можете экспортировать путь библиотеки в свой.bash_profile, например

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

или вы можете скопировать ваш libclntsh.so в /usr/lib/or/lib

  • 0
    Я попробую это. Могу ли я сделать это без прав пользователя root.
  • 1
    путь экспорта не требует привилегий пользователя root, но если вам нужно скопировать lib в / usr / lib / или / lib, тогда привилегия пользователя root требуется
Показать ещё 2 комментария
0

Если вы работаете в Linux (используя GNU Binutils), вы также можете скомпилировать путь к библиотеке прямо в двоичный файл. См. -Wl, - rpath =...

Но в любом случае (если вы не используете Oracle Instant Client lib), вы также должны экспортировать ORACLE_HOME env. var in crontab. В противном случае ваше приложение не сможет локализовать файлы.nls и.ora(tnsnames.ora).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню