“skype:符号查找错误:skype:undefined symbol”

升级到11.10,Skype不再有效。 我收到以下错误:

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

尝试从Skype和Ubuntu软件中心下载。

我有同样的问题,我解决了,因为我在这个链接中解释:

Ubuntu 11.10 + Skype =符号查找错误

在我的情况下,在/usr/lib32中的错误版本中找到了一些libQt而不是/usr/lib/i386-linux-gnu

我想原因是一些非常古老的skype安装需要强制安装一些32位库要validation它是否也适用于你,请在终端中执行以下操作

 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) 

validation是否在/usr/lib/i386-linux-gnu/中找到了所有qt库,而不是在/usr/lib32 。 如果你在/ usr / lib32中找到了一些库,我建议你备份它们并从/ usr / lib32中删除它们并validation结果

  ldd /usr/bin/skype | grep Qt 

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

简而言之,问题是skype在/ usr / lib32中找到了一些陈旧的libQt *库,这些库是用i386版本的libQt安装的。 那些旧的库可能是为旧skype安装的

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

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

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

假设您安装了skype:i386软件包(听起来像你这样做)。

真正的解决方案仍然无法实现,但根据机器的不同可能会有所不同……

问题与当前向multiarch的转换有关(它允许在同一个安装上使用不同体系结构的库 – 例如i386和amd64。)

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

我要

这也解决了我的问题。 我正在运行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行。 这使得终端无需启动应用程序。

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

然后更换

 Exec=skype 

通过

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

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

在http://www.skype.com/en/download-skype/skype-for-computer/选择“动态”作为您的发行版,这应该给你一个类似于“skype-4.2.0.13.tar.bz2”的文件。 使用以下命令提取并启动Skype:

 tar -xvf skype-4.2.0.13.tar.bz2 mv skype-4.2.0.13 skype ./skype/skype & 

我通过以下方式修复了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 to

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 – 符号查找错误