gzserver:加载共享库时出错:libdart.so.6.1:无法打开共享对象文件:没有这样的文件或目录

时间:2017-05-23 16:13:34

标签: ros

请帮忙!目前我正在使用oculus rift,安装了ros,我尝试安装gazebo cmake并通过,但是当我尝试运行gazebo时输出如下: gzserver:加载共享库时出错:libdart.so.6.1:无法打开共享对象文件:没有这样的文件或目录

还试图安装libdart6包,但似乎没什么用。我在这里绝望。请帮忙

2 个答案:

答案 0 :(得分:0)

缺少软件的依赖关系。有一个共享对象(.so文件)仍然在路径中丢失。路径通常是目录列表,其中软件查找其依赖项。

如果您在名为/home/random/another/dir/的目录中 并且此目录包含可执行文件,您可以通过

执行该文件
./executable

./表示shell在当前工作目录中搜索executable。如果你想运行一个可执行文件,我只需要./只是必需的。

如果有任何软件抱怨缺少家属,您可以使用ldd来检查这些内容。 首先确保您位于正确的目录,然后运行ldd executable_file

我在这里举个例子:

g@toolbox:~/Downloads/TeamSpeak3-Client-linux_x86$ ls
CHANGELOG     imageformats    libQt5Core.so.5     libQt5Sql.so.5      libquazip.so  platforms        qt.conf        sqldrivers    ts3client_linux_x86
error_report  libc++abi.so.1  libQt5Gui.so.5      libQt5Widgets.so.5  news          plugins          sound          styles        ts3client_runscript.sh
gfx           libc++.so.1     libQt5Network.so.5  libQt5XcbQpa.so.5   package_inst  plugin_sdk.html  soundbackends  translations  update
g@toolbox:~/Downloads/TeamSpeak3-Client-linux_x86$ ldd ts3client_linux_x86 
    linux-gate.so.1 (0xf770a000)
    libquazip.so => not found
    libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf76ea000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf76e0000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf76c3000)
    libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf767d000)
    libQt5Core.so.5 => /usr/lib/i386-linux-gnu/sse2/libQt5Core.so.5 (0xf7145000)
    libQt5Gui.so.5 => /usr/lib/i386-linux-gnu/sse2/libQt5Gui.so.5 (0xf6bc5000)
    libQt5Network.so.5 => /usr/lib/i386-linux-gnu/libQt5Network.so.5 (0xf6a36000)
    libQt5Widgets.so.5 => /usr/lib/i386-linux-gnu/libQt5Widgets.so.5 (0xf6337000)
    libQt5Sql.so.5 => /usr/lib/i386-linux-gnu/libQt5Sql.so.5 (0xf62ed000)
    libresolv.so.2 => /lib/i386-linux-gnu/i686/cmov/libresolv.so.2 (0xf62d5000)
    **libc++.so.1 => not found
    libc++abi.so.1 => not found**
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf62b7000)
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf629b000)
    libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf60ee000)
    /lib/ld-linux.so.2 (0x56607000)
    libicui18n.so.52 => /usr/lib/i386-linux-gnu/libicui18n.so.52 (0xf5ecb000)
    libicuuc.so.52 => /usr/lib/i386-linux-gnu/libicuuc.so.52 (0xf5d47000)
    libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf5c1f000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf5b2d000)
    libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf5b00000)
    libharfbuzz.so.0 => /usr/lib/i386-linux-gnu/libharfbuzz.so.0 (0xf5aa3000)
    libGL.so.1 => /usr/lib/i386-linux-gnu/libGL.so.1 (0xf598b000)
    libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf592d000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf57db000)
    libicudata.so.52 => /usr/lib/i386-linux-gnu/libicudata.so.52 (0xf416e000)
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf40fa000)
    libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf4048000)
    libgraphite2.so.3 => /usr/lib/i386-linux-gnu/libgraphite2.so.3 (0xf4020000)
    libnvidia-tls.so.340.102 => /usr/lib/i386-linux-gnu/tls/libnvidia-tls.so.340.102 (0xf401b000)
    libnvidia-glcore.so.340.102 => /usr/lib/i386-linux-gnu/libnvidia-glcore.so.340.102 (0xf1a87000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf1a72000)
    libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf1a69000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf1a43000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf1a3f000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf1a39000)
g@toolbox:~/Downloads/TeamSpeak3-Client-linux_x86$ 

您可以看到我的 ts3client_linux_x86 可执行文件将丢失libc++.so.1, libc++abi.so.1

您可以使用这些名称作为要安装的软件包的提示。

Linux Mint使用像Debian / Ubuntu这样的 apt-get 来安装软件。这两个文档比Mint更好(至少在数量和可访问性方面)。所以如果在Linux Mint上,你也可能会受益于搜索debian / ubuntu文档

回到你的问题: ldd不会告诉你比你已经知道的更多,即你错过了这个共享对象libdart.so.6.1

我无法在标准的debian jessie中找到它,并且一些搜索似乎表明你需要先配置一个ppa来获取它。那有点乱。

http://gazebosim.org/tutorials?tut=install_from_source

以上链接指出:

sudo apt-add-repository ppa:dartsim
sudo apt-get update
sudo apt-get install libdart-core5-dev

可用于添加所述ppa,并可能安装“libdart库”。有可能 libdart.so.5.1但不是libdart.so.6.1

然而,我无法检查自己;) 您现在可以做的是添加ppa,更新apt并尝试apt-get install libdart-core6-dev

也许很幸运。 (只是不遵循页面上的说明,它们可能与您的个人目标无关)

寻找解决方案的好看:)

答案 1 :(得分:0)

首先,感谢您的帮助! 最后我去了dart的页面,下载了dart.6.1.2,提取它,构建它然后它工作了。有点像白痴哈哈。你的sugestions帮助了我很多! Ť