Registered Member
|
Hi,
I have an application (non open-source) which was compiled to use qt-4.4. But this application is, to put it on one word, ugly. If I configure it to use qt-4.6.2, it's gui look very beautyfull --- but it crashes with SEGV when I try to save its files. Should I assume that this application is incompatible with qt-4.6? Or is there any way to fix this? Note: 32-bit app on 64-bit system. |
Administrator
|
Given that Qt is binary compatible ( like kdelibs ) this should be possible without problems.
Have you tried debugging the application using gdb to see where it is crashing? Does it output messages on the console indicating the issue?
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
Registered Member
|
Yes, gdb says that it crashes somewhere inside libQtXml.so.4, in QDomNode::save(QTextStream&, int):
Just say if there is any other information that could be useful. By the way... Kubuntu 10.04 64bits, kernel 2.6.32-22-generic. /usr/lib32/libQtXml.so.4.6.2: 276324 bytes, MD5: f91c0766eb1cc1e14a69b3da90155161. Application: Cisco Packet Tracer 5.3 (32 bits). |
Administrator
|
This appears to be due to a behaviour change or a regression in Qt. The QDom API however is effectively in minimal maintenance mode only however, so it will likely not be fixed.
To resolve this, setting "LD_LIBRARY_PATH" to a directory containing a copy of libQtXml from Qt 4.4 should be sufficient to fix the issue in the interim.
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
Registered Member
|
Ouch, seems to work.
Created dir /usr/lib32/qt-4.4, copied libQtXml.so.4.4.3 shipped with application to there, with its symlinks "libQtXml.so.4" and "libQtXml.so.4.4". started app this way: LD_LIBRARY_PATH=/usr/lib32/qt-4.4 /opt/pt/bin/PacketTracer5 Repeated the steps to reproduce the SEGV, and it haven't appeared. Thanks for your help! |
Registered Member
|
Cisco's PacketTracer 5.3 (32bit app.) correctly runs on my 64bit machine.
I can save and reread applications files. However, fonts are ugly, close to unreadable! In packettracer's lib dir, I renamed the original libQtGui.so.4.4.3 library to another name and replaced it by a new link to /usr/lib32/libQtGui.so.4.6.2 But there seems to be a changed or missing symbol in the new Qt4.6 lib:
Any idea to solve this problem? |
Registered Member
|
When I ran into this problem, I've edited the PacketTracer script to not set LD_LIBRARY_PATH, and then used "getlibs" to install the needed libraries. But "getlibs" need to be run against the real app, not to the script. |
Administrator
|
You need to provide access to the Qt 4.6.2 QtCore library.
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
Registered Member
|
Great!
- Use getlibs to grab and install missing libs, - Comment LD_LIBRARY line in 'packettracer' start script and it works! Thanks a lot. |
Registered users: Bing [Bot], blue_bullet, Google [Bot], rockscient, Yahoo [Bot]