帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:查找  未定义  未定义符号  undef  Skype  BIT  

问题:

升级到 11.10,Skype不再工作。 出现了以下错误:


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



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


回答 1:

我遇到了同样的问题,并按照在这里链接中解释的方式解决了问题:

11.10 + Skype = 符号查找错误

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

我想原因是一些非常旧的p2p安装,需要强制安装一些 32bit 库来验证它也适用于终端。


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/ 中找到它们

简而言之,在libQt*版本中安装了一些陈旧旧的库。 那些旧的库可能是为旧的skypes安装


回答 2:

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

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


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



假设你已经将 skype:i386 包安装在( 听起来你做了) 中。

真正的解决方案仍然不一样,但是根据机器的不同,可能会有所不同。

问题与当前到 multiarch ( 在同一安装中不同体系结构的库( 比如i386和 amd64 )的当前过渡相关。

从Ubuntu软件中心安装的skype是 skype:i386,需要链接到libaries版本的。 我猜想,它沿着amd64加载一个amd64库,而不是i386版本。 ( 可以能是一个破坏的安装,从旧的包,或者是坏包装 3rd 方产品)?

伊万伊万


回答 3:

这也解决了我的问题。 我正在运行 11.10 64位,并安装了 64位的Skype包。 在查询Skype使用的Qt库时,我注意到了一些从/opt/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。

为了让统一/破折号启动工作,我相应地修改了执行线。 这个备用终端使用终端启动应用程序。

在从 命令行 $ gksu gedit [superuser mode ] 启动的gedit窗口中编辑 /usr/share/applications 中的Skype启动器

然后替换

 
Exec=skype



 


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



这样,Skype就可以从 Ubuntu 11.10的unity/dash中启动


回答 4:

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 &






文章标签:BIT  查找  Skype  未定义  undef  未定义符号  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语