当前位置: 首页 > 面试题库 >

gdb说“无法打开共享对象文件”

钱雅逸
2023-03-14
问题内容

我有一个二进制文件和一个共享库。共享库使用以下命令进行编译:

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失败,并显示以下消息:

启动程序:/ mnt / sda5 / Programming / main / src / mainx / mnt / sda5 /
Programming / main / src / mainx:加载共享库时出错:libmisc.so:无法打开共享库文件:没有这样的文件或目录

目前,这看起来非常棘手,但我无法解决。我不确定这是否是emacs的问题,还是应该在gdb的命令行中传递参数


问题答案:

Emacs可能在调用gdb之前不会读取您的.bashrc。尝试在您的.gdbinit文件中放入“设置solib-搜索路径”和“设置solib-绝对路径”



 类似资料:
  • 问题内容: 我试图从控制台开始调试我的应用程序。 然后在gdb中 我得到的输出: 系统配置如下: 问题答案: 您可以在gdb中使用该命令来更改gdb用于启动要调试的程序的环境。从gdb帮助中提取: 范例:

  • 在RHEL 6中,我通过remi存储库安装了PHP7.2: 检查了使用预安装的模块。它没有列出。因此,我继续安装它: 再次检查模块,发现oci8尚未加载。为了测试我用尝试的所有模块是否都失败(默认情况下未安装): 如果我做mbstring成功地列在那里。我错过了什么与?提前谢谢你。 我已经将扩展添加到php中。扩展名为oci8的ini文件。然后我做了: PHP警告:PHP启动:无法加载第0行中未知

  • 尝试在我的14.10版ubuntu上安装rJava包,使用以下代码 在重新安装jdk后,遇到了一些与jni相关的错误,包括jni问题,并尝试再次运行相同的代码,得到了该错误 寻找解决方案,找到所有建议(对于x64)执行这些命令的人 但这不起作用,我还能做什么?我会提供任何需要的细节。

  • 我有一个巨大的麻烦来运行我的代码。我已经尝试过重新安装packges,在环境中安装等等,但是我认为我做得不对。 我得到这个信息: 使用TensorFlow后端。 回溯(最近一次呼叫最后一次): 文件“”,第1行,在导入keras中 文件“/home/wagner/anaconda3/lib/python3.5/site packages/keras/init.py”,第3行,在from中。导入UT

  • 我正在尝试安装tensorflow的对象检测模块,但在运行以下命令时: python3对象检测/builders/model\u builder\u test.py 我得到以下错误。我已经安装了CUDA8.0,9.0,9.1和cuDNN 6和7,但仍然有以下错误。我感谢你的建议,谢谢! 回溯(最后一次调用):文件“/usr/local/lib/python3.5/dist-packages/ten

  • 我正在编写一个在后端使用redis的C程序。 我尝试过构建/安装hiredis(make 使用以下命令行构建:gcc-v example.c-l hiredis-I/usr/local/include/hiredis/ 我尝试过的事情: pkg info hiredis返回0 通过(make)卸载/重新安装 都没有运气。 我猜我没有为gcc正确链接程序,但是文档中没有任何构建示例。 我做错了什么,