Erreur de chargement des bibliothèques partagées libclntsh.donc.11.1 ne peut pas ouvrir
Error while loading shared libraries: libclntsh.donc.11.1 : ne peut pas ouvrir
partagé obj fichier aucun fichier. Lors de l'exécution de crontab.
J'ai respecté mon programme en c++, c'est un proc programme après compilation du proc je vais exécuter la commande ci-dessous.
g++ filename.CPP -I $ORACLE_HOME/precomp/public -L $ORACLE_HOME/lib -lclntsh -o test
J'ai créé un crontab pour l'exécuter chaque min
$ crontab -l
* * * * * /home/test > /home/te.txt 2>&1
J'ai fait un lien symbolique de la bibliothèque. Mais j'obtiens l'erreur ci-dessus à l'intérieur de te.txt
Im la recherche de ce pour les 2 derniers jours, et a également vécu la même question, mais encore que je ne parviens pas à effacer l'erreur.
Je ne suis pas sûr qu'avec LD_Library_path
ou .bash_profile
. comment inclure la bibliothèque.
- La commande
/home/test > /home/te.txt 2>&1
n'a pas de sens. Vous devriez plutôt avoir quelque chose comme/bin/sh /path/to/script
et ainsi de suite.
Vous devez vous connecter pour publier un commentaire.
Votre pouvez exporter le chemin de bibliothèque dans votre .bash_profile comme
ou vous pouvez copier votre libclntsh.donc dans /usr/lib/ou /lib
Si vous êtes sur Linux (à l'aide de GNU Binutils) vous pouvez aussi compiler-dans le chemin de la bibliothèque directement dans le binaire. Voir -Wl,-rpath=...
Mais de toute façon (sauf si vous utilisez Oracle instant client lib), vous devez également export ORACLE_HOME env. var dans la crontab. Sinon votre demande ne sera pas en mesure de le localiser .nls ni .ora (tnsnames.ora) des fichiers.