【问题标题】:RedLevel1 and Cannot open shared object file: No such file or directoryRedLevel1 和无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2019-12-19 18:25:15
【问题描述】:

我知道这似乎是一个很常见的错误,但我尝试了多种解决方案,但到目前为止没有。公平地说,我对 Linux 并不是特别了解,所以这可能更多的是个人缺点。无论如何,进入实际问题。

我正在尝试运行位于文件夹~/Level1 中的名为RedLevel1 的程序。尝试执行它会导致以下输出:

$ ~/Level1/.libs/RedLevel1: error while loading shared libraries: liblevelone.so.0: cannot open shared 
object file: No such file or directory

然后我去错误指定的目录搜索丢失的库。

$~/Level1/.libs/ ls
ADCBoard.o   EvRaw0.o               liblevelone.rootmap    RedLevel1
ADCEvent.o   EvRec0.o               liblevelone.so         RootIO.o
ADCFile.o    liblevelone.a          liblevelone.so.0       RunHeader.o
Analyzer.o   liblevelone.la         liblevelone.so.0.0.0   VDecoder.o
DBService.o  liblevelone.lai        liblevelone.so.0.0.0T  viewer
Decoder.o    liblevelone_rdict.o    MCDecoder.o            viewer_online
EvHeader.o   liblevelone_rdict.pcm  RDconfig.o

因此,至少据我所知,所需的库 liblevelone.so.0 就在那里。不知道为什么找不到。我试图运行sudo ldconfig 并将包含库的路径添加到LD_LIBRARY_PATH 无济于事。我知道这似乎是一个简单的解决方法,但我很难过。任何帮助将不胜感激。

提前谢谢你!

编辑:本来应该添加这个,但我运行的是 Ubuntu 18.04。此外,我不是构建和配置相关程序的人。我是一个研究小组的一员,代码用于模拟一些物理数据。另一位成员为我配置了它,但他目前正在休假,无法访问。

【问题讨论】:

  • 你在运行什么 linux?
  • 你可以通过运行ldd Redlevel1查看它期望在哪里找到库
  • @stark 运行该命令会返回 liblevelone.so.0 (0x00007f43af50f000) 和其他库的编号,尽管有指示的目录。
  • 检查您的 Bash 历史记录:history | grep configure.
  • 不确定你在说什么。 ldd 列出所有库的目录路径。如果库之前没有“/”,则它希望它位于您当前的工作目录中。

标签: linux shared-libraries


【解决方案1】:

这确实显示了我是多么的菜鸟,但是在运行make clean 并再次运行make 后问题似乎已经解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 2018-11-26
    • 2019-11-27
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多