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