“skype:符号查找错误:skype:未定义符号”

“skype:符号查找错误:skype:未定义符号”

升级到 11.10 后 Skype 不再可用。我收到以下错误:

skype: symbol lookup error: skype: undefined symbol: _ZN5QFile3mapExxNS_14MemoryMapFlagsE

尝试从Skype以及来自 Ubuntu 软件中心。

答案1

这不是一个完整的答案,但至少是一个解决方法:

从命令行运行 skype,手动确保它指向 i386 库:

LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/ /usr/bin/skype

这是假设您已经安装了 skype:i386 包(听起来您已经安装了)。

我仍然找不到真正的解决方案,但可能会根据机器的不同而有所不同......

该问题与当前向多架构的过渡有关(允许在同一安装中使用不同架构的库 - 例如 i386 和 amd64。)

从 Ubuntu 软件中心安装的 skype 是 skype:i386,需要链接到 i386 版本的库。我怀疑它在某个地方加载了 amd64 库而不是 i386 版本。(也许是旧软件包遗留的损坏安装,或者是包装不良的第三方产品?)

我要

答案2

我遇到了同样的问题并按照此链接中的解释解决了:

Ubuntu 11.10 + Skype = 符号查找错误

/usr/lib32 就我而言,在 中发现了一些错误版本的 libQt /usr/lib/i386-linux-gnu

我猜是因为一些非常老的 skype 安装需要强制安装一些 32 位库。为了验证它是否也适用于你,请在终端中执行以下操作

ldd /usr/bin/skype | grep Qt

libQtDBus.so.4 => /usr/lib/i386-linux-gnu/libQtDBus.so.4 (0xf7569000)
libQtGui.so.4 => /usr/lib/i386-linux-gnu/libQtGui.so.4 (0xf6aa3000)
libQtNetwork.so.4 => /usr/lib/i386-linux-gnu/libQtNetwork.so.4 (0xf6967000)
libQtCore.so.4 => /usr/lib/i386-linux-gnu/libQtCore.so.4 (0xf66c5000)
libQtXml.so.4 => /usr/lib/i386-linux-gnu/libQtXml.so.4 (0xf626d000)

验证所有 qt 库是否在 中找到 /usr/lib/i386-linux-gnu/,而不在 中找到/usr/lib32。如果您在 /usr/lib32 中发现一些库,我建议您备份它们并将其从 /usr/lib32 中删除,然后验证

 ldd /usr/bin/skype | grep Qt  

现在找到它们/usr/lib/i386-linux-gnu/

简而言之,问题是 skype 在 /usr/lib32 中发现了一些过时的旧 libQt* 库,而不是随 i386 版本的 libQt 安装的库。这些旧库可能是为了让旧 skype 正常工作而安装的

答案3

这也为我解决了问题。我运行的是 Ubuntu 11.10 64 位,并安装了 64 位 Skype deb 包。查询 Skype 使用的 Qt 库时,我注意到 /opt/google/earth 中的 Google Earth 安装中使用了大约 3 个库:

$ ldd /usr/bin/skype | grep Qt
    libQtDBus.so.4 => /usr/lib/i386-linux-gnu/libQtDBus.so.4 (0xf7564000)
    libQtGui.so.4 => /opt/google/earth/free/libQtGui.so.4 (0xf6af9000)
    libQtNetwork.so.4 => /opt/google/earth/free/libQtNetwork.so.4 (0xf69cd000)
    libQtCore.so.4 => /opt/google/earth/free/libQtCore.so.4 (0xf66d2000)
    libQtXml.so.4 => /usr/lib/i386-linux-gnu/libQtXml.so.4 (0xf627a000)

从命令行运行

LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/ /usr/bin/skype

强制使用目录中的库i-386-linux-gnu并成功启动Skype。

为了让 Unity / Dash 启动器正常工作,我相应地修改了 Exec 行。这样就无需使用终端来启动应用程序。

/usr/share/applications在从命令行启动的 gedit 窗口中编辑 Skype 启动器$ gksu gedit[超级用户模式]

然后更换

Exec=skype

经过

Exec=env LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/ /usr/bin/skype

这样 Skype 就可以从 Ubuntu 11.10 中的 Unity / Dash 启动

答案4

我通过以下方式修复了 Ubuntu 14.04 LTS 上的 skype 启动和音频问题:

要从终端运行 Skype:将其指向 i386 库,如下所示

LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/ PULSE_LATENCY_MSEC=30 /usr/bin/skype 要从 Dash 启动 Skype:编辑文件“/usr/share/applications/skype.desktop”

sudo YOU​​R_FAVORITE_EDITOR_HERE /usr/share/applications/skype.desktop

更改此行

Exec=env PULSE_LATENCY_MSEC=60 skype %U 至

Exec=env PULSE_LATENCY_MSEC=30 LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/ skype %U 注意:我将脉冲延迟从 60 更改为 30 以使音频正常工作,并添加了 LD_LIBRARY_PATH

据报道,该功能仍适用于 Ubuntu 14.04。

来源 :无法在 Ubuntu 64 位中启动 Skype - 符号查找错误

相关内容