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

Fernando Lopez-Lezcano nando@ccrma.Stanford.EDU
Mon Dec 13 15:44:00 2004


On Mon, 2004-12-13 at 10:58, Dave Phillips wrote:
>   Okay, clear enough, but why does the build wait until the organbasegui 
> code to bomb out ? It's been using uic and moc from QTDIR up to that 
> point without failing. That's the part I don't understand. Can you clarify ?

I have no clue. 

I'm actually building the packages in a mach chroot so I only load the
packages needed for building, not the whole distro. That means I don't
see issues with confusion of qt versions because I only install the
newer one (for building). In the spec file I add an "rpath" linker
command so that the muse executable looks into the new qt library before
anything else. It seems to work, at least in a simple test I just did in
rh9...

-- Fernando

> Fernando Lopez-Lezcano wrote:
> 
> >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.