PDA

View Full Version : Fix: SEQ4 and QT shared library error



digicide
12-20-2001, 11:45 PM
GCC3, QT2.3.2, Showeq 4 installed.

This is the error :
./showeq: error while loading shared libraries: ./showeq: undefined symbol: _ZN2Qt9lightGreyE

Recently had this problem and here is the fix for anyone else experiencing it.

Its due to showeq using the old QT libraries for some reason. To see what QT library SEQ is loading, change to your SEQ binary dir and type 'ldd showeq'. One of the lines displayed will be the QT library SEQ is using, for me it was 'libqt-mt.so.2 => /usr/lib/libqt-mt.so.2'. In my case this was the incorrect library, all you need to do is update the symlinks to point to the correct library. I simply changed to my QT 2.3.2 lib dir and did a 'cp libqt-m* /usr/lib' though its probably better to change the symlinks by hand if you want to keep your older version around for some reason.

Thanks to casey and floyd for providing the fix for me :)

RavenCT
12-21-2001, 07:45 AM
Could you possible put up the commands you used to change the link? I'm getting the same error and I don't know the syntax to change this...

Thanks!

Mr Guy
12-21-2001, 07:47 AM
cp libqt-m* /usr/lib


IS the command he used, from the NEW QT directory

RavenCT
12-21-2001, 07:51 AM
Ah.... Sorry about that, I deserve the flame then!



Windows user trying to live in a Linux world! Mistakes are bound to be made!

Froglok Forager
12-21-2001, 12:20 PM
Hey I think there is an easier way. I got this error so I checked the environment variables for QT:

set | grep -i qt

my QTDIR was still set to the old QT directory.

just set QTDIR to the directory you installed QT in (/usr/local/qt if you followed the QT install instructions).

if you're using bash, put this in your ~/.profile:

QTDIR=/usr/local/qt
export QTDIR

and then:

source ~/.profile

that's all I had to do... no symlinks or anything.

FF

Zaphod
12-21-2001, 02:07 PM
I'd suggest setting your QTDIR, PATH, and LD_LIBRARY_PATH correctly. So if for example you installed Qt under /usr/local/qt-2.3.2
using the bash shell:


export QTDIR=/usr/local/qt-2.3.2
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH


You may wish to put that into a shell script that you source when you want to use ShowEQ, so if you saved the script as /usr/local/etc/useqt232 you would do the following:

. /usr/local/etc/useqt232

I would recommend against copying over the system libraries, as doing so may cause problems for KDE based programs.

Enjoy,
Zaphod

* edited to correct vB code (@$#@# square brackets)

digicide
12-21-2001, 06:01 PM
That does sound a much cleaner way of doing it :)

Thinking back thats what was suggested to me by casey/floyd (cant remember who) but it was nearly 6am and went for the dirty quick fix :P