web-dev-qa-db-ja.com

「skype:シンボル検索エラー:skype:未定義シンボル」

11.10にアップグレードされ、Skypeは動作しなくなりました。次のエラーが表示されます。

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

Skype とUbuntu Software Centerの両方からダウンロードしようとしました。

7
marius

私は同じ問題を抱えており、このリンクで説明したように解決しました:

buntu 11.10 + Skype =シンボル検索エラー

私の場合、/usr/lib32ではなく/usr/lib/i386-linux-gnuで間違ったバージョンのlibQtが見つかりました。

理由は、いくつかの32ビットライブラリのインストールを強制する必要がある、非常に古いskypeのインストールであると思われます。

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/でそれらを見つけます

簡単に言えば、問題は、i386バージョンのlibQtでインストールされたライブラリの代わりに、/ usr/lib32にある古い古いlibQt *ライブラリをskypeが見つけたことです。これらの古いライブラリは、おそらく古いスカイプが動作するためにインストールされた

9
Gabriele

これは完全な答えではありませんが、少なくとも回避策です。

コマンドラインからskypeを実行し、i386ライブラリを指すように手動で確認します。

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

これは、skype:i386パッケージがインストールされていることを前提としています(あなたのように聞こえます)。

本当の解決策はまだ私を避けますが、マシンによって異なる場合があります...

問題は、multiarchへの現在の移行に関係しています(iarchやAMD64など、同じインストールで異なるアーキテクチャのライブラリを許可します)。

Ubuntu Software Centerからインストールされたスカイプはskype:i386であり、ライブラリのi386バージョンに対してリンクする必要があります。私が疑うのは、i386バージョンの代わりにAMD64ライブラリをロードするラインのどこかにあることです。 (おそらく、古いパッケージから壊れたインストールが残っているのでしょうか、またはサードパーティ製品のパッケージが不適切ですか?)

いわん

11
user29978

それは私にとっても問題を解決しました。 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から起動できます

6
Antonio

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 &
3

Ubuntu 14.04 LTSでのスカイプの起動と音声の問題を次のように修正しました。

ターミナルからSkypeを実行するには:次のようにi386ライブラリを指定します

LD_LIBRARY_PATH =/usr/lib/i386-linux-gnu/Pulse_LATENCY_MSEC = 30/usr/bin/skypeダッシュボードから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注:オーディオを機能させるためにPulse latencyを60から30に変更し、LD_LIBRARY_PATHを追加しました

これは、Ubuntu 14.04でも引き続き機能することが報告されています。

ソース: buntu 64ビットでSkypeを起動できません-シンボル検索エラー

0
Atul Makwana