[PlanetCCRMA] Re: updated: liblo, jamin; added: sooperlooper, qmidiarp, qt33

Fernando Lopez-Lezcano nando@ccrma.Stanford.EDU
Mon Dec 13 10:45:02 2004


On Mon, 2004-12-13 at 04:10, Dave Phillips wrote:
> Christian Frisson wrote:
> >Whatever I enable or disable when configuring, compiling ends shortly right
> >here:
> >/usr/lib/qt-3.3.3/bin/uic -L ../../muse/widgets -o organguibase.cpp -impl
> >organguibase.h organguibase.ui
> >/usr/lib/qt-3.3.3/bin/uic: relocation error: /usr/lib/qt-3.3.3/bin/uic:
> >undefined symbol: _ZNK7QString3argExii
> >make[5]: *** [organguibase.lo] Erreur 127
> >
> >Any idea?
>
>   I have a lot of experience with that particular error. I google'd it 
> and found very little to help correct it, so I ended up doing a 
> completely clean installation of Qt (with the threads option) to the 
> /usr/local hierarchy. I then followed the MusE build instructions 
> *exactly* as Werner indicates. IIRC a number of environment variables 
> need to be set, including QTDIR and LD_LIBRARY_PATH. If you do not set 
> the lib path you'll get relocation error: I'm not sure if this is a 
> problem with GCC or Qt, but setting that variable is necessary.

It is a problem with Qt. The "original" qt has its path added to
/etc/ld.so.conf so that all qt applications (including its own tools)
can find the shared libraries. You don't want to add the new qt there,
otherwise all existing apps will fail (with relocation errors :-). So
you need to tell any binary that was built with the new qt where it
needs to find its libraries. You do that with LD_LIBRARY_PATH, in this
particular case LD_LIBRARY_PATH=/usr/lib/qt-3.3.3/lib should do the
trick. Obviously you also need to tell the software package where qt is
located, and that's what QTIDR is used for. 

I have not yet tried to build muse with the new qt... will do this week,
I hope. 

-- Fernando