[SOLVED] Undefined symbol: _ZN9QlistData11detach_growEPii
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.
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.
[quote]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.[/quote]
I have solved the prblem by rebuilding my project on lower version of QtSDK and it executed successfully.
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: