gdb中找不到so库文件,但是直接执行没有问题,请教原因

cjn_xaut 2018-08-09 07:01:25
各位大神,小弟遇见一个问题:

有一个a.out程序,使用了一个库文件tmp.so,该文件存放在非默认路径下。环境变量LD_LIBRARY_PATH中已经添加了相关路径。
直接运行./a.out 不报错;

gdb调式:gdb ./a.out
报错: err while loading shared libraries: tmp.so: cannot open shared object file: No such file or directory
不知道什么原因。

哪位能给小弟一点方向,万分感谢!
...全文
1037 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
flying19911008 2018-09-07
  • 打赏
  • 举报
回复
ldd看下链接库
weixin_43111451 2018-09-01
  • 打赏
  • 举报
回复
set solib-absolute-prefix
set solib-search-path

cjn_xaut 2018-08-28
  • 打赏
  • 举报
回复
应该的原因是gdb调试启动了新的shell,和直接运行时的env是不同的(有些配置我是手动执行的,没有写在.basher文件里)目前运行OK。
参考链接:http://blog.sina.com.cn/s/blog_80ce3a550101m3l5.html

但还有一事不明,我希望获取elf文件的编译时的gcc版本信息,但是以下两条命令执行后
readelf -wi a.out :返回GNU C++ 4.8.3
readelf -p .comment a.out :返回GCC:(GNU)4.5.1
获取编译器版本信息不一致

到底哪个是正确的呢?
fang 2018-08-11
  • 打赏
  • 举报
回复
gdb也需要设置库路径的系统搜索路径,
试下
set solib-absolute-prefix
set solib-search-path

设置下看看是什么情况。
aabbabababaa 2018-08-10
  • 打赏
  • 举报
回复
换下路径试看了

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧