加载共享库时出错: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 :(得分: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)文件。