PDA

View Full Version : Qt path fine but Qt library path incorrect



matrix
07-21-2002, 04:52 AM
I can't seem to find anyone with a problem similar to this therefore i'm posting here for help.

I compiled qt-2.3.2 with gcc3 on RedHat 7.3.

After I go to my showeq directory and "make -f Makefile.dist" as well as exporting all the correct Qt variables I get a problem after doing ./configure. Showeq doesn't seem to be able to get my Qt Library directory right, since its using my old qt2 directory even though I have qt-2.3.2 installed and exported all the correct values.

Anyway, here is what happens (btw, i'm not on my linux computer right now so I can't copy/paste or post the log file so i'm just posting the part with the error after executing the ./configure command):

checking for Qt... yes
>> Found version.: 2.3.2
>>> Headers........: /usr/lib/qt-2.3.2/include
>>>> Libraries......: /usr/lib/qt2/lib
configure: error: Something wicked happened while trying to validate your Qt installation!!! Please verify your libraries...

After receiving the error, I typed "echo $LD_LIBRARY_PATH" and "/usr/lib/qt-2.3.2/lib" was displayed. In addition, just to check, I also typed "echo $QTDIR" which displayed "/usr/lib/qt-2.3.2" as expected.

I'm not sure why showeq isn't using the "/usr/lib/qt-2.3.2/lib" library path instead of the old "/usr/lib/qt2/lib" library path. Any help is appreciated, thanks.

fryfrog
07-21-2002, 09:40 AM
try adding the path of your qt-2.3.2 to /etc/ld.so.conf and then run "ldconfig"

EtherMage
07-21-2002, 09:57 AM
If that fails, just pass the library path to configure like this:
./configure --with-qt-libraries=/usr/lib/qt-2.3.2/lib

That should force it to accept that as the QT libdir.

-EtherMage

matrix
07-21-2002, 03:01 PM
fryfrog - I added the line to the /etc/ld.so.conf and then ran "/sbin/ldconfig" (I assume thats what you mean by run ldconfig) without any luck.

EtherMage - It still uses the qt2 library path with "./configure --with-qt-libraries=/usr/lib/qt-2.3.2/lib " :(

Morannon
07-22-2002, 08:44 AM
After playing with qt-3.0.5 for a few days, i wanted to try going back to 2.3.2, and after building qt, im getting this something wicked error also.

Looking into whats happening, in the config.log file, the last entry is a g++ line.

Running this on the command line, its complaining that there are undefined references to QMutex::QMutex(bool) and QMutex::~QMutex()

Anyone have any suggestions from this point ?

high_jeeves
07-22-2002, 09:11 AM
Did you build with the -thread option? It sounds like you dont have the threading libraries.

--Jeeves

Morannon
07-22-2002, 09:38 AM
Yes I did, it doesnt complain about not being able to find the libqt-mt library, just that the mutex isnt around...

noonereally
08-13-2002, 04:57 PM
)))Bump(((

Anyone ever figure out what to do?

I'm having the same issue. I tried everything i could find information on. I still get the error :(

Cryonic
08-13-2002, 05:59 PM
export LD_LIBRARY_PATH=/usr/lib/qt-2.3.2/lib:$LD_LIBRARY_PATH

noonereally
08-13-2002, 06:40 PM
Sorry, Noob here.
where do I put that.

I just typed it in the comand line and tryed to ./configure and got the same error :(

Cryonic
08-13-2002, 08:31 PM
The point of the command was to try and make configure see the QT 2.3.2 libs before it sees the one in the QT2 directory.

Take a look at ./configure --help

casey
08-14-2002, 12:23 AM
rather than playing with your dynamic linker paths (the ld stuff) which has absolutly 0 effect on compiling, just try running

QTDIR=/usr/lib/qt-2.3.2 ./configure

instead of just

./configure

thats all you should need to get configure to find the QT you want it to, includes and libraries. SEQ's make encodes the ld path into the binary (-rpath) so messing with the dynamic linker is unnecessary (and even if you do mess with it, showeq is not effected by it for the qt libraries) for runtime operation.

casey
08-14-2002, 12:27 AM
Originally posted by Morannon
After playing with qt-3.0.5 for a few days, i wanted to try going back to 2.3.2, and after building qt, im getting this something wicked error also.

Looking into whats happening, in the config.log file, the last entry is a g++ line.

Running this on the command line, its complaining that there are undefined references to QMutex::QMutex(bool) and QMutex::~QMutex()

Anyone have any suggestions from this point ?

compile your qt libs with -thread next time. QMutex is undefined if qt is not compiled with thread support.

noonereally
08-14-2002, 08:51 PM
Thanks Casey. It didn't seem to work for me so I decided to start over with a clean install of Red Hat 7.3 and go ahead and check to see what was the latest QT I could use.
Fee posted something about QT 3.0.5 So I decided to down load that and give it a try...

This what I tried...
export CC=gcc3
export CXX=g++3
export QTDIR=/usr/lib/qt-x11-free-3.0.5
make -f Makefile.dist
./configure && make

*Sigh this is what I still got
Checking for Qt... yes
>> Found version.: 3.0.5
>>> Headers.........: /usr/lib/qt-x11-free-3.0.5/include
>>>> Libraries .....: /usr/lib/qt-x11-free-3.0.5/lib/
configure: error: Something wicked happened while trying to validate your Qt installation!!! Please verify your libraries...

I tried your suggestion and as many other ways I could try.

So I think I need to do a lot more reading on this board. Thanks for helping. If I get it figured out I'll post what I had to do to get it working.

Dedpoet
08-14-2002, 10:28 PM
configure: error: Something wicked happened while trying to validate your Qt installation!!! Please verify your libraries...

When you do your ./configure for seq, try doing

./configure --without-qt-validation

See if that works. FYI, I got that by searching for "something wicked happened" and this (http://seq.sourceforge.net/showthread.php?s=&threadid=1447&highlight=something+wicked+happened) was one of the hits.

noonereally
08-14-2002, 11:02 PM
Ding!

Thanks buddy that did the trick!

three-p-o
08-15-2002, 07:10 AM
Ok.. Now my question is this.
Should we be compiling with the --without-qt-validation switch or since 3.0.5 is now supported is there a specific way we were supposed to configure 3.0.5?
Like how in this post (http://seq.sourceforge.net/showthread.php?s=&threadid=70) about how to install SEQ on RH 7.2 post we are told what switches to add to the config for 2.3.2.
Personally I used the same options as the listed thread but with a few changes that were required for the new version.
Namely
-qt-gif instead of -gif (error poped up telling me of this when I ran configure)
-system-libjpeg instead of -system-jpeg (ditto for this too. apparently these were changed in 3.0.5)
and
-no-xft instead of -xft (was a post about this as well. something to do with 'lame antialased fonts')

noonereally
08-15-2002, 08:09 AM
that did get me past the ./configure


But my compile ended with..

/usr/lib/qt-x11-free-3.0.5/include/qstring.h:762: Undefined referance to 'QString::shared_null'
collect2: ldreturned 1 exit status
make [2]: *** [showeq] Error 1
make [2]: Leaving directory '/seq/showeq/src'
make [1]: *** [all-recursive] Error 1
make [1]: Leaving directory '/seq/showeq
make: *** [all-recursive] Error 1


Dunno if that helps

high_jeeves
08-15-2002, 09:24 AM
As searching will show you, you didnt build your QT correctly. Take a look at the walkthrough and FAQ, and make sure you are following all the steps to build QT.

--Jeeves

Dedpoet
08-15-2002, 12:23 PM
Are you positive you used -thread when doing ./configure on your QT install? And then rebuilt Qt after doing that? We're not trying to make you feel stupid, it's just that you shouldn't be getting this error if you followed the walkthru for installing Qt and then Seq to the letter.

I just bumped to 3.0.5 this afternoon and didn't have any problem at all.

casey
08-15-2002, 01:57 PM
ok, when you ./configure and get the "wicked validation error", check out config.log, and look for the compile commmand that errored out. You may just be missing an xlibrary that is linked to the qt test code for that test, and is causeing the error, but looking at the actual command being run and the actual error is the only way to really know how to fix your problem.

noonereally
08-15-2002, 01:58 PM
possitive.

you can't make me feel stupid hehe, I have 4 days xp with this so I'm as green as they come. I'm reading tons on the board and trouble shoot and fix some things. but I'm expecting to mis some easy stuff and brain fart a lil. no hurt feelings here ;)

I'm re downing QT and going to re compile it. and follow the walk throughs closely in case I missed something.

Thanks for the help guys!

high_jeeves
08-15-2002, 02:30 PM
Search on your error message:


'QString::shared_null'

You will find threads that tell you exactly what you are doing wrong.

--Jeeves

noonereally
08-15-2002, 02:35 PM
export CC=gcc3
export CXX=g++3
export QTDIR=/usr/lib/qt-x11-free-3.0.5
make -f Makefile.dist
./configure


Heres the end of my log.



configure:6907: checking for Qt
configure:7217: g++3 -o conftest -I/usr/lib/qt-x11-free-3.0.5/include -I/usr/X11R6/include -L/usr/lib/qt-x11-free-3.0.5/lib -L/usr/X11R6/lib conftest.C -lqt-mt -lpng -lz -lm -lXext -lX11 1>&5
/tmp/ccF7AfzO.o: In function `main':
/tmp/ccF7AfzO.o(.text+0x86): undefined reference to `QMutex::QMutex[in-charge](bool)'
/tmp/ccF7AfzO.o(.text+0x95): undefined reference to `QMutex::~QMutex [in-charge]()'
/tmp/ccF7AfzO.o: In function `QString::QString[in-charge]()':
/tmp/ccF7AfzO.o(.gnu.linkonce.t._ZN7QStringC1Ev+0x7): undefined reference to `QString::shared_null'
/tmp/ccF7AfzO.o(.gnu.linkonce.t._ZN7QStringC1Ev+0x10): undefined reference to `QString::shared_null'
/tmp/ccF7AfzO.o(.gnu.linkonce.t._ZN7QStringC1Ev+0x18): undefined reference to `QString::makeSharedNull()'
collect2: ld returned 1 exit status
configure: failed program was:
#define QT_THREAD_SUPPORT 1
#include "confdefs.h"
#include <qglobal.h>
#include <qapplication.h>
#include <qapp.h>
#include <qobjcoll.h>
#include <qstringlist.h>
#include <qstyle.h>
#include <qthread.h>
#if ! (QT_VERSION > 230)
#error 1
#endif

int main() {
QStringList *t = new QStringList();
QMutex mutex;
return 0;
}


If I use ./configure --without-qt-validation

I get past the something wicked error but my make gets half way done and scrolls hundreds of undefined blah blah

---------------------
when I compiled qt

cd =/usr/lib/qt-x11-free-3.0.5
export QTDIR=/usr/lib/qt-x11-free-3.0.5
./configure -thread
make

Took about 5 hours.

Only thing I couldn't find with this version was that file i edit as shown:
pico -w /usr/lib/qt-2.3.2/configs/linux-g++-shared (Used the /usr/lib/qt-x11-free-3.0.5 dir tho)
I'm gonna assume its no longer used in v3.0.5

--------------------------
I installed these files from the 1st post on this thread
http://seq.sourceforge.net/showthread.php?s=&threadid=1477&highlight=7.3

and stuck to the walk through he had posted (hackersquest)
-------------------------

high_jeeves
08-15-2002, 03:00 PM
You need to build with QT with gcc3...

--Jeeves

three-p-o
08-15-2002, 03:04 PM
I discovered what we were doing wrong noon.


export CC=gcc3
export CXX=g++3
export QTDIR=/usr/lib/qt-x11-free-3.0.5
make -f Makefile.dist
./configure


Thats nice.. but now loot at the echos of what is actually happening...
QT 3.0.5 AUTO sets the compiler back to gcc and g++ so the exports for gcc3 and g++3 won't be looked at.
so when you use the same exports when you attempt to compile SEQ the compile bombs out cause QT was not made with the same compiler you are attempting ot make SEQ with.

I got arround this by renaming the original gcc and g++ to gcc2.96 and g++2.96 and naming gcc3 and g++3 to gcc and g++, finding where it reset them back to the old compile was too hard. too many directories to search through.

This was my compile line for qt 3.0.5

configure -release -shared -qt-gif -no-xft -sm -system-libmng -system-zlib -system-libpng -system-libjpeg -no-g++-exceptions -thread

Everything worked fine on compile this time.

Now the problem I am having is in SEQ.
When I zone SEQ freezes for about 10 to 30 seconds after decode then seems to work fine from that point.
This was just a quick make/install/login zone a few times test as I am out the door in 30 mins for work =(

I'm using RH 7.3 and gcc/g++ is 3.0.4
With QT 2.3.2 SEQ was working fine. I have actually reverted to it till we can track down why 3.0.5 is causing the hang after decompile.

I'm out

spelling corrections made.. turns out I posted 4 mins after high.. lol

fryfrog
08-15-2002, 03:17 PM
to compile qt-3.0.5, you need to change a file just like in qt-2.3.2 BUT it is a different file.

qt-3.x == "mkspecs/linux-g++/qmake.conf"
qt-2.x == "configs/linux-g++-shared"

casey
08-15-2002, 03:18 PM
Thats nice.. but now loot at the echos of what is actually happening...
QT 3.0.5 AUTO sets the compiler back to gcc and g++ so the exports for gcc3 and g++3 won't be looked at.
so when you use the same exports when you attempt to compile SEQ the compile bombs out cause QT was not made with the same compiler you are attempting ot make SEQ with.


maybe you have an old version of autoconf?? the QT search macro uses whatever compiler configure thinks it should be using to do its tests. I run my configure as


CC=gcc-3.2 CXX=g++-3.2 QTDIR=/usr/lib/qt-gcc3 ./configure

which is not different than the poster you replied to except that my command does not clutter bash's environment table with 3 variables i wont be using again.

thats all you need on the seq side.

on the QT side (unless this has been changed with 3.0.5), you need to edit the platform file being used to compile your qt, and change the compilers it wants to use. QT's configure script does not look nor care about your environment variables, so they have no effect on its build. There are threads on how to do this and even a patch by zaphod.

three-p-o
08-15-2002, 03:38 PM
I goofed and thought I was looking at the compile of the QT package. my bad.. either way thou QT was set to compile using my old compiler instead of the new one that I thought it was using which is why it was bombing out

still need to figure out why seq is freezing for a few seconds thou

Cryonic
08-15-2002, 03:52 PM
Run top to see what is eating up system resources.

Mr. Suspicious
08-15-2002, 03:58 PM
Now the problem I am having is in SEQ.
When I zone SEQ freezes for about 10 to 30 seconds after decode then seems to work fine from that point.

This isn't a "problem" it's just the time needed to apply the found key to the data. Depending on your system this might be longer or shorter. And be honest, it's more like 3 to 10 seconds (one-mis-sis-sip-pi, two-mis-sis-sip-pi....)

three-p-o
08-15-2002, 08:43 PM
You even quoted me so I don't know how you missed this.. its freezing AFTER implementing the decode. all the spawns are listed named and color coded but SEQ just hangs. waits a few secs then picks up from where it left off. by hangs I mean I can alt over to my stdout/teminal window and back but when I come back it does not reprint/update the seq window untill that time has passed.

Again this issue was not evident when compiled with gcc3/g++3 and qt2.3.2 but is seen when compiled with gcc3/g++3 and qt3.0.5

fee
08-15-2002, 09:58 PM
This is a known issue with Qt3.0.5. Spawnlist2 seems to work pretty well, however the old spawnlist seems to make the problem worse. Stay with Qt2.3.2, it works.

fee

three-p-o
08-16-2002, 03:47 AM
Thanks fee. glad to see I'm not as screwed up as I thought. =p
Believed it to be an option that I had messed up with the qt compile. Glad to see its not just me.

noonereally
08-16-2002, 07:04 AM
This was the issue the entire time for me. The n00b walk through I was going by didnt have this information. I put a "3" next tp all the gcc and g++ that I could find in the file (maybe 4 total) './configure' 'make' 'make install' and it worked!


Originally posted by fryfrog
to compile qt-3.0.5, you need to change a file just like in qt-2.3.2 BUT it is a different file.

qt-3.x == "mkspecs/linux-g++/qmake.conf"
qt-2.x == "configs/linux-g++-shared"

Mr. Suspicious
08-16-2002, 07:16 AM
The n00b walk through I was going by didnt have this information. put a "3" next tp all the gcc and g++ that I could find in the file (maybe 4 total)

Quoted from the INSTALL.newbies (http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/seq/showeq/INSTALL.newbies?rev=1.3&content-type=text/vnd.viewcvs-markup) file, found in the ShowEQ directory:



1.4 Editting linux-g++-shared
edit the file "qt-src/configs/linux-g++-shared and change all
references to "gcc" to "gcc3" as well as "g++" to "g++3"
(lines 3, 4, 35, and 59). save your changes (ctrl-o, ctrl-x)

Code:

[]# pico -w /usr/lib/qt-2.3.2/configs/linux-g++-shared



1.5 NOTE TO USERS WITH A HIGHER VERSION OF gcc

This document assumes you have gcc3 and g++3 executable on your system
(as included in Red Hat 7.2). Depending on the distro (in other words:
anything other then Red Hat 7.2), which RPMs you used and the phase of
the moon, you may only have gcc<specified-version-number> or
g++<specified-version-number> executables.

Change everywhere in this document where it says gcc3 to gcc<version>
and g++3 to g++<version>

To see the version numbers for your installed compiler, please follow
the next steps:

- Open a console and type "gcc" then press the <TAB> key once or twice.
This will attempt to "auto complete" what you are typing. Pressing it
twice should list all the options you have.

Result:

[]# gcc
gcc gcc-3.1
[]#

Do NOT use plain gcc, you need at least gcc3 or a higher version. In this
example you'd use "gcc-3.1" and "g++-3.1" instead of the mentioned "gcc3"
and "g++3"

If you do not see any other versions of gcc then plain "gcc"on your
system, then you did not install all specified packages as mentioned
in step 1.2

noonereally
08-16-2002, 07:34 AM
My point was...
It says to edit this file.
"configs/linux-g++-shared"

which doesn't exist in 3.0.5 (i couldn't find it anyway)

this was the file I had to edit which was not mentioned.
"mkspecs/linux-g++/qmake.conf"

------------ :)

fryfrog
08-16-2002, 07:46 AM
keeping in mind that the instructions tell you to get qt-2.3.2 and edit a perticular file in qt-2.3.2's source...

i didn't have some magic ball that told me that i needed to edit a different file in qt-3.x, i merely looked at the dir scructure and noticed that it was slightly different. i then started poking around looking for things that were simliar to qt-2.3.2.

its pretty easy to tell what something is compiling with. if the long lines mostly start with "gcc" or "g++" then its using your old compiler. if they mostly start with "gcc3", "g++3","gcc-3.1",etc... then you are compiling with your other compiler. it is just kind of all linux/computer common sense i suppose.