Message: previous - next
Month: April 2012

Re: [trinity-devel] Can't build tqca on 64-bit

From: Darrell Anderson <humanreadable@...>
Date: Wed, 25 Apr 2012 12:44:55 -0700 (PDT)
> And where is your "" located ? Isn't TQT3
> supposed to be installed in /usr ? So that libraries are under /usr/lib64
> directly ... that's what I do and it works very well ...

I install TQt3 to a $PREFIX of /opt/trinity. qmake, moc, uic, etc. all are installed in /opt/trinity/bin.

After TQt3 is installed, $QTDIR then is set to /opt/trinity as well.

Using this method I don't have to install TQt3 to any weird subdirectories as was the past practice with Qt3.

In 32-bit I have no trouble building any Trinity package.

In 64-bit I have no trouble building any Trinity package except tqca, tqca-tls, python-tqt and python-trinity.

For 32-bit builds is installed in /opt/trinity/lib.

For 64-bit builds is installed in /opt/trinity/lib64.

The configure process does not have a problem finding $PREFIX, $QTDIR because I explicitly declare those variables.

The only problem with building tqca and tqca-tls is when $LIBDIR changes from $PREFIX/lib to $PREFIX/lib64.

> If TQT3 is in non-standard prefix (ex: /opt/trinity), you
> can modify the "configure" script a bit more than I did.
> Look at the line "for p in /usr/lib64/tqt /usr/lib/tqt ...". These are 
> all the path where we look for TQT3 libraries.
> Just add the path you want, like ${PREFIX}/lib64 and
> ${PREFIX}/lib at the beginning the path list, and it should do the trick.

Adding ${PREFIX}/lib64 does not help because the configuration process finds $PREFIX and $QTDIR. I explicitly define those variables in my build script. The problem is not finding $PREFIX/lib64 ($QTDIR/lib64).

> If you have too much trouble with this "configure" script,
> you can stop using it and build tqca directly with only 3 commands !
> (just check that the "qmake" command is in your PATH ...)
> export QTDIR=/opt/trinity
> qmake
> make

OK. I tried that. I can't get that to work either. Here is the build output:

g++ -c -pipe -g -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -O2 -D_REENTRANT -fPIC  -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/opt/trinity/mkspecs/default -I. -Isrc -I/usr/include/tqt -I/opt/trinity/include -I.ui/ -I.moc/ -o .obj/qca.o src/qca.cpp
rm -f
g++ -Wl,-rpath,/opt/trinity/lib -shared -Wl,-soname, -o .obj/qca.o   -L/opt/trinity/lib -ltqt-mt -lpthread
/usr/lib64/gcc/x86_64-slackware-linux/4.5.2/../../../../x86_64-slackware-linux/bin/ld: cannot find -ltqt-mt

The output shows that /opt/trinity/lib is being used rather than /opt/trinity/lib64.

I can run this process manually and manually edit Makefile to /opt/trinity/lib64. Then make runs without error.

The trick is to force tqca to look in /opt/trinity/lib64 and not in /opt/trinity/lib.