程序传到服务器上编译链接通过,但是运行时提示
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!
本文介绍了解决程序在服务器上运行时遇到libstdc++.so.6等库文件缺失的方法。通过调整LD_LIBRARY_PATH环境变量,成功解决了库文件未被链接器找到的问题。
1372

被折叠的 条评论
为什么被折叠?



