c++ - gdb 说 "cannot open shared object file"

标签 c++ linux emacs gdb

我有一个二进制文件和一个共享库。 共享库编译为:

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/

相关文章:

emacs - 阻止 Emacs 中的键盘输入

emacs - 在这种情况下如何使用 (interactive "r") 功能?

c++ - 序列化其中包含可序列化嵌套类的类,出现奇怪的编译错误

c++ - 使用稳定 vector 中项目的地址

c++ - 提高字符串重叠矩阵构建效率

c++ - 在目标机器上访问 POSIX 信号量时可执行文件崩溃(SEGV_MAPERR)

c++ - io_service::poll_one 非确定性行为

linux - NSIS 支持 Linux 和 Solaris

linux - 如何将包含空格的变量分配给 KSH 中的另一个变量

emacs - 我的 slime-repl 无法在 ClojureBox 中工作