March 2, 2012

Ashish Mittal Ashish Mittal
Ant Farmer
151 posts

[SOLVED] Undefined symbol: _ZN9QlistData11detach_growEPii

 

Hi,

I have developed a Qt application on Ubuntu machine which has Qt4.7 installed on it and I am using QStringList
in my code.
When I move output binaries to Suse11 Linux machine which has Qt 4.6.2 run time environment , I am getting the error as “Undefined symbol: _ZN9QlistData11detach_growEPii”.

Please let me know how we can get rid out of this problem.

Regards
Ashish

4 replies

March 2, 2012

Johan Solo Johan Solo
Lab Rat
94 posts

You cannot move the binaries! Especially if you know that the Qt version is different. You have to clean the project, (maybe run qmake, it won’t harm), and rebuild it.

 Signature 

Linux : you can find worse, but it’s more expensive.

March 2, 2012

Lukas Geyer Lukas Geyer
Dinosaur Breeder
2074 posts
Qt is backwards binary and source compatible within each major release. This means that a program linked dynamically to e.g Qt 4.5.1 will continue running with Qt 4.5.3 without the need to recompile. Qt is not binary compatible between major versions such as Qt 2.x, Qt 3.x and Qt 4.x etc. Qt is also not forwards compatible, meaning that applications created with a newer version of Qt will not necessarily run or compile against older Qt versions.

March 3, 2012

Ashish Mittal Ashish Mittal
Ant Farmer
151 posts

I have solved the prblem by rebuilding my project on lower version of QtSDK and it executed successfully.

March 6, 2012

miroslav miroslav
Lab Rat
228 posts

If you gt a message like this, invoke “c++filt” with the undefined symbol. It will tell you the plain C++ name of the symbol. Usually, that is much easier to understand:

> c++filt _ZN9QlistData11detach_growEPii

 Signature 

Mirko Boehm | .(JavaScript must be enabled to view this email address) | KDE e.V.
FSFE Fellow
Qt Certified Specialist

 
  ‹‹ problem in subclassing QTable      QTcpSocket and WebKit: form post data gets lost ››

You must log in to post a reply. Not a member yet? Register here!