gdb 说“无法打开共享对象文件"; [英] gdb says "cannot open shared object file"
问题描述
我有一个二进制文件和一个共享库.共享库编译为:
I have one binary and one shared library. The shared library is compiled with:
all:
g++ -g -shared -fpic $(SOURCES) -o libmisc.so
二进制文件编译为:
LIBS=-L../../misc/src
LDFLAGS=-lmisc
all:
g++ -g -o mainx $(INCLUDE) $(SOURCE) $(LIBS) $(LDFLAGS)
我在~/.bashrc
export LD_LIBRARY_PATH=/mnt/sda5/Programming/misc/src/
到 libmisc.so
输出路径.
从控制台调试工作正常:
Debugging from console works fine:
gdb mainx
但是,从 Emacs22 启动 gdb 失败并显示以下消息:
However from Emacs22, launching gdb fails with the following message:
启动程序:/mnt/sda5/Programming/main/src/mainx/mnt/sda5/Programming/main/src/mainx:加载共享库时出错:libmisc.so:无法打开共享对象文件:没有那个文件或目录
Starting program: /mnt/sda5/Programming/main/src/mainx /mnt/sda5/Programming/main/src/mainx: error while loading shared libraries: libmisc.so: cannot open shared object file: No such file or directory
这暂时看起来很棘手,我无法解决.我不确定这是否是 emacs 的问题,或者我应该在 gdb 的命令行中传递一个参数.
This looks very tricky for the moment, and I couldn't solve it. I am not sure if this a emacs's problem, or I should pass a parameter in gdb's command line.
推荐答案
Emacs 在调用 gdb 之前可能不会读取您的 .bashrc.尝试将 'set solib-search-path' 和 'set solib-absolute-path 放在您的 .gdbinit 文件中
Emacs probably does not read your .bashrc before it invokes gdb. Try to put 'set solib-search-path' and 'set solib-absolute-path in your .gdbinit file instead
这篇关于gdb 说“无法打开共享对象文件";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!