Linker Probleme mit verschiedenen Qt-Versionen
Verfasst: 21. Mai 2011 14:52
Hallo Qt-Community,
ich habe folgendes Problem:
Ich habe auf meinem PC OpenSUSE 11.4 installiert. Als Desktop Umgebung läuft KDE4 (version 4.6.0).
Dementsprechend liegen unter Qt-Libs in version 4.7.1 vor. Desweiteren habe ich die neueste version des Qt-Frameworks von der Qt-Homepage geladen und sie auf meinem Rechner der Anleitung nach übersetzt. Qt-4.7.3 liegt nun unter
Ich habe nun versucht Anwendungen die ich auf einem Debian System geschrieben habe auf diesem System zu starten. Das kompilieren funktioniert tadellos, ich übersetzte die Anwendung mit
Versuche ich jedoch danach das Programm zu starten bekomme ich folgenden Fehler ausgegeben:
Der Verdacht liegt nun nahe das die falschen Libs gelinkt werden. Also habe ich mir angeschaut welche Abhängigkeiten bei Qt für diese Anwendungen bestehen:
Soweit sogut, weiterhin habe ich mir die Qt-libs ausgeben lassen die im cache liegen:
Die Libs oder Links auf die Libs(?) liegen scheinbar nur für die 4.7.1 Version im cache,
ich denke daher rührt auch das Problem. Testweise habe ich die Qt-Libs aus /usr/lib64
verschoben, und dann das Programm erneut gestartet welches dann auch ohne Probleme geklappt hat. Allerdings kann das ja keine permanente Lösung sein
.
Mein erster Versuch war die $LD_LIBRARY_PATH zu erweitern um das Qt-4.7.3 Verzeichnis und anschliessend zu exportieren, dies wurde in die .bashrc eingetragen und die bash neu gestartet, dies führte allerdings keine Änderung herbei.
Mein zweiter Versuch war ein direkter Eintrag des pfades in die /etc/ld.so.conf und
danach das ausführen von ldconfig. Danach liegen zwar die 4.7.3 Libs im cache aber eben auch die 4.7.1 Libs
Daher wieder der selbe Fehler wie vorher. Im Moment bin ich leider ein wenig ratlos wie ich diese Problem löse, ich finde es auch relativ seltsam, das das ändern der $LD_LIBRARY_PATH nichts bewirkt. Wenn jemand ein Lösung parat hat wäre ich sehr dankbar
.
ich habe folgendes Problem:
Ich habe auf meinem PC OpenSUSE 11.4 installiert. Als Desktop Umgebung läuft KDE4 (version 4.6.0).
Dementsprechend liegen unter
Code: Alles auswählen
/usr/lib64Code: Alles auswählen
/usr/local/Trolltech/Qt-4.7.3/Code: Alles auswählen
$ make distclean
$ qmake CONFIG+=debug
$ make
Code: Alles auswählen
$ ./kinectApp1
Cannot mix incompatible Qt library (version 0x40701) with this library (version 0x40703)
Abgebrochen
Code: Alles auswählen
$ ldd kinectApp1 | grep libQt
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.7.3/lib/libQtGui.so.4 (0x00007fdc1e499000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.7.3/lib/libQtCore.so.4 (0x00007fdc1dfee000)
Code: Alles auswählen
# ldconfig -p | grep libQt
libQt3Support.so.4 (libc6,x86-64) => /usr/lib64/libQt3Support.so.4
libQtXmlPatterns.so.4 (libc6,x86-64) => /usr/lib64/libQtXmlPatterns.so.4
libQtXml.so.4 (libc6,x86-64) => /usr/lib64/libQtXml.so.4
libQtWebKit.so.4 (libc6,x86-64) => /usr/lib64/libQtWebKit.so.4
libQtTest.so.4 (libc6,x86-64) => /usr/lib64/libQtTest.so.4
libQtSvg.so.4 (libc6,x86-64) => /usr/lib64/libQtSvg.so.4
libQtSql.so.4 (libc6,x86-64) => /usr/lib64/libQtSql.so.4
libQtScriptTools.so.4 (libc6,x86-64) => /usr/lib64/libQtScriptTools.so.4
libQtScript.so.4 (libc6,x86-64) => /usr/lib64/libQtScript.so.4
libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib64/libQtOpenGL.so.4
libQtNetwork.so.4 (libc6,x86-64) => /usr/lib64/libQtNetwork.so.4
libQtMultimedia.so.4 (libc6,x86-64) => /usr/lib64/libQtMultimedia.so.4
libQtHelp.so.4 (libc6,x86-64) => /usr/lib64/libQtHelp.so.4
libQtGui.so.4 (libc6,x86-64) => /usr/lib64/libQtGui.so.4
libQtDesignerComponents.so.4 (libc6,x86-64) => /usr/lib64/libQtDesignerComponents.so.4
libQtDesigner.so.4 (libc6,x86-64) => /usr/lib64/libQtDesigner.so.4
libQtDeclarative.so.4 (libc6,x86-64) => /usr/lib64/libQtDeclarative.so.4
libQtDBus.so.4 (libc6,x86-64) => /usr/lib64/libQtDBus.so.4
libQtCore.so.4 (libc6,x86-64) => /usr/lib64/libQtCore.so.4
libQtCLucene.so.4 (libc6,x86-64) => /usr/lib64/libQtCLucene.so.4
ich denke daher rührt auch das Problem. Testweise habe ich die Qt-Libs aus /usr/lib64
verschoben, und dann das Programm erneut gestartet welches dann auch ohne Probleme geklappt hat. Allerdings kann das ja keine permanente Lösung sein
Mein erster Versuch war die $LD_LIBRARY_PATH zu erweitern um das Qt-4.7.3 Verzeichnis und anschliessend zu exportieren, dies wurde in die .bashrc eingetragen und die bash neu gestartet, dies führte allerdings keine Änderung herbei.
Mein zweiter Versuch war ein direkter Eintrag des pfades in die /etc/ld.so.conf und
danach das ausführen von ldconfig. Danach liegen zwar die 4.7.3 Libs im cache aber eben auch die 4.7.1 Libs
Code: Alles auswählen
# ldconfig -p | grep libQt
libQt3Support.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQt3Support.so.4
libQt3Support.so.4 (libc6,x86-64) => /usr/lib64/libQt3Support.so.4
libQt3Support.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQt3Support.so
libQtXmlPatterns.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtXmlPatterns.so.4
libQtXmlPatterns.so.4 (libc6,x86-64) => /usr/lib64/libQtXmlPatterns.so.4
libQtXmlPatterns.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtXmlPatterns.so
libQtXml.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtXml.so.4
libQtXml.so.4 (libc6,x86-64) => /usr/lib64/libQtXml.so.4
libQtXml.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtXml.so
libQtWebKit.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtWebKit.so.4
libQtWebKit.so.4 (libc6,x86-64) => /usr/lib64/libQtWebKit.so.4
libQtWebKit.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtWebKit.so
libQtTest.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtTest.so.4
libQtTest.so.4 (libc6,x86-64) => /usr/lib64/libQtTest.so.4
libQtTest.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtTest.so
libQtSvg.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtSvg.so.4
libQtSvg.so.4 (libc6,x86-64) => /usr/lib64/libQtSvg.so.4
libQtSvg.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtSvg.so
libQtSql.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtSql.so.4
libQtSql.so.4 (libc6,x86-64) => /usr/lib64/libQtSql.so.4
libQtSql.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtSql.so
libQtScriptTools.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtScriptTools.so.4
libQtScriptTools.so.4 (libc6,x86-64) => /usr/lib64/libQtScriptTools.so.4
libQtScriptTools.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtScriptTools.so
libQtScript.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtScript.so.4
libQtScript.so.4 (libc6,x86-64) => /usr/lib64/libQtScript.so.4
libQtScript.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtScript.so
libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib64/libQtOpenGL.so.4
libQtNetwork.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtNetwork.so.4
libQtNetwork.so.4 (libc6,x86-64) => /usr/lib64/libQtNetwork.so.4
libQtNetwork.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtNetwork.so
libQtMultimedia.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtMultimedia.so.4
libQtMultimedia.so.4 (libc6,x86-64) => /usr/lib64/libQtMultimedia.so.4
libQtMultimedia.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtMultimedia.so
libQtHelp.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtHelp.so.4
libQtHelp.so.4 (libc6,x86-64) => /usr/lib64/libQtHelp.so.4
libQtHelp.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtHelp.so
libQtGui.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtGui.so.4
libQtGui.so.4 (libc6,x86-64) => /usr/lib64/libQtGui.so.4
libQtGui.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtGui.so
libQtDesignerComponents.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtDesignerComponents.so.4
libQtDesignerComponents.so.4 (libc6,x86-64) => /usr/lib64/libQtDesignerComponents.so.4
libQtDesignerComponents.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtDesignerComponents.so
libQtDesigner.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtDesigner.so.4
libQtDesigner.so.4 (libc6,x86-64) => /usr/lib64/libQtDesigner.so.4
libQtDesigner.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtDesigner.so
libQtDeclarative.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtDeclarative.so.4
libQtDeclarative.so.4 (libc6,x86-64) => /usr/lib64/libQtDeclarative.so.4
libQtDeclarative.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtDeclarative.so
libQtDBus.so.4 (libc6,x86-64) => /usr/lib64/libQtDBus.so.4
libQtCore.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtCore.so.4
libQtCore.so.4 (libc6,x86-64) => /usr/lib64/libQtCore.so.4
libQtCore.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtCore.so
libQtCLucene.so.4 (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtCLucene.so.4
libQtCLucene.so.4 (libc6,x86-64) => /usr/lib64/libQtCLucene.so.4
libQtCLucene.so (libc6,x86-64) => /usr/local/Trolltech/Qt-4.7.3/lib/libQtCLucene.so