"skype: symbol lookup error: skype: undefined symbol"

Solution 1:

This is not a complete answer, but at least a workaround:

Run skype from the commandline, manually making sure it is pointed to the i386 libraries:

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

This is assuming you have the skype:i386 package installed (it sounds like you do).

The real solution still eludes me, but may be different depending on the machine...

The problem has to do with the current transition to multiarch (which allows libraries of different architectures on the same install - such as i386 and amd64.)

The skype installed from Ubuntu Software Centre is skype:i386 and needs to link against i386 versions of libaries. What I suspect is that somewhere along the line it loads an amd64 library instead of the i386 version. (Perhaps a broken install left over from an old package, or badly-packaged 3rd party product?)

Iwan

Solution 2:

I've had the same problem and I resolved as I explained in this link:

Ubuntu 11.10 + Skype = symbol lookup error

In my case some libQt were found in the wrong version in /usr/lib32 instead of /usr/lib/i386-linux-gnu.

I suppose the reason is some very old skype installation that requires forcing the installation of some 32bit libraries To verify that it also apply to you, do the following in the terminal

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)

Verify that all qt libraries are found in /usr/lib/i386-linux-gnu/ and not in /usr/lib32. If you found some libraries in /usr/lib32 I suggest you to backup them and remove them from /usr/lib32 and verify that the results of

 ldd /usr/bin/skype | grep Qt  

now find them in /usr/lib/i386-linux-gnu/

Briefly, the problem was that skype found some stale and old libQt* libraries in /usr/lib32 insted of those installed with i386 version of libQt. Those old libraries were probably installed for old skypes to work

Solution 3:

That solved the problem for me too. I am running Ubuntu 11.10 64 bit and installed the Skype deb package for 64-bit. When querying the Qt libraries used by Skype, I noticed some 3 libraries where used from a Google Earth installation in /opt/google/earth:

$ 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)

Running from the command line

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

forced use of the libraries in the i-386-linux-gnu directory and successfuly launched Skype.

In order to have the Unity / Dash launcher working I modified the Exec line accordingly. This spare the use of a terminal to launch the application.

Edit the Skype launcher in /usr/share/applications in a gedit window launched from the command line $ gksu gedit [superuser mode]

Then replace

Exec=skype

by

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

This way Skype can be launched from the Unity / Dash in Ubuntu 11.10

Solution 4:

on the http://www.skype.com/en/download-skype/skype-for-computer/ choose "Dynamic" as your distribution this should give you a file similar to "skype-4.2.0.13.tar.bz2". Use the following commands to extract and start skype:

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