我有一个二进制文件和一个共享库。 共享库编译为:
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
输出路径。
从控制台调试工作正常:
gdb mainx
但是在 Emacs22 中,启动 gdb 失败并显示以下消息:
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 的命令行中传递一个参数。
最佳答案
Emacs 在调用 gdb 之前可能不会读取您的 .bashrc。尝试将“set solib-search-path”和“set solib-absolute-path”放入您的 .gdbinit 文件中
关于c++ - gdb 说 "cannot open shared object file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/932384/