加载共享库libclntsh.so.11.1时出错无法打开

时间:2014-11-11 11:38:17

标签: c++ linux oracle crontab

  

加载共享库时出错: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不确定。如何包含该库。

2 个答案:

答案 0 :(得分:4)

您可以在.bash_profile中导出库路径,如

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

或者您可以在/ usr / lib /或/ lib

中复制libclntsh.so

答案 1 :(得分:0)

如果您使用的是Linux(使用GNU Binutils),您还可以将库路径直接编译到二进制文件中。 See -Wl,-rpath=...

但无论如何(除非您使用Oracle即时客户端库),您还应该导出ORACLE_HOME环境。 var in crontab。否则,您的应用程序将无法本地化.nls或.ora(tnsnames.ora)文件。