On Thu, 24 Feb 2005 00:30:32 -0800 (PST), prashant waman
> Hi all,
> A very simple project (temp) build on Suse 7.3
> with g++ 2.95.3 and QT 3.3.3 giving the following
> error while running on Redhat Linux 2.4.21-4.EL with
> g++ 3.2.3 and QT 3.3.3,
> $ ./temp
> ./temp: relocation error: ./temp: undefined symbol:
> As i am compiling and running project on same version
> of QT and compiling on older version of g++ and
> running on newer version of g++, i think it has to run
> but it is not running.
> Where is the problem.
I'm afraid that's a false premise. An executable built with an older
version of g++ may _sometimes_ be compatible with a shared library
built with a newer version of g++. However, that is not always the
case. The C++ ABI for g++ changed significantly between 2.95 and 3.x.
It even changed between 3.2 and 3.3 (see
So when you say the "same version of QT", that is true at the source
code level, but that does not make them the "same" or even compatible.
If I were you, I would try to link statically. Alternatively, you
could try shipping your built-with-2.95 libraries with your
application, but then you need to manage your two different versions
of QT 3.3.3 on your runtime machine.
I hope this helps.
List archive and information: http://lists.trolltech.com/qt-interest/