Solaris下设置程序运行的动态链接库目录
程序传到服务器上编译链接通过,但是运行时提示
libstdc++.so.6
找不到,使用ldd命令查看结果:
libstdc++.so.6 => (file not found)
libm.so.1 => /usr/lib/libm.so.1
libgcc_s.so.1 => (file not found)
libc.so.1 => /usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1
/usr/platform/SUNW,Sun-Fire-V440/lib/libc_psr.so.1
查找gcc文档,发现libgcc的安装目录为/usr/local/lib
原来默认的动态链接库查找目录不包含/usr/local/lib导致找不到库文件,试图使用
crle -l /usr/lib -l /usr/local/lib
提示没有权限操作
crle: /var/ld/ld.config: open failed: Permission denied
郁闷,不过还有招:
写一个脚本启动程序,脚本中添加:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
然后再运行程序,OK!