【发布时间】: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 列出所有库的目录路径。如果库之前没有“/”,则它希望它位于您当前的工作目录中。