2016-07-20 11 views
1

Ich versuche, eine Qt5-Anwendung für Linux (Debian) mit dynamischer Verknüpfung bereitzustellen. Meine App läuft gut auf Ubuntu, wo alle Abhängigkeiten gut funktionieren. Mein Anwendungspaket sieht wie folgt aus:Plattform-Plugin libqxcb.so gefunden, kann aber Qt-Bibliotheken nicht finden. (Bereitstellen von Qt-Anwendung für Linux mit dynamischer Verknüpfung)

- application.exe 
- qt.conf 
- libicudata.so.54 
- libicui18n.so.54 
- libicuuc.so.54 
- libQt5Core.so.5 
- libQt5DBus.so.5 
- libQt5XcbQpa.so.5 
- libQt5Gui.so.5 
- libQt5Widgets.so.5 
- platforms/libqxcb.so 

Wenn ich es vom Terminal auf Debian laufen bekomme ich diese Fehlermeldung:

Diese Anwendung konnte nicht gestartet werden, da es nicht oder laden Sie die Qt finden konnten, Plattform-Plugin "xcb".

Verfügbare Plattform-Plugins sind: xcb.

Durch erneutes Installieren der Anwendung kann dieses Problem behoben werden. Abgebrochen

Dann lief ich ldd auf libqxcb.so und sah, dass es mir nicht die qt Libs im Hauptordner finden. Meine Anwendung.exe kann alle qt-Bibliotheken von rpath in der pro-Datei finden, so dass nur das Plattform-Plugin die qt-Bibliotheken nicht finden kann.

Wie kann ich den Pfad zu Qt-Bibliotheken für die Plattform-Plugins festlegen?

+0

Welchen Befehl führen Sie vom Terminal aus? – Frodon

+0

Ich rannte ./Application Befehl, wenn ich die Fehlermeldung bekam. Und lief die LDD./Anwendung und sah, dass es die QT-Bibliotheken finden konnte. Und ldd ./libqxcb.so und sah, dass es die qt-Bibliotheken nicht finden konnte, aber davon abhängig ist, vielleicht ist das nicht das Problem? – maltja

+0

Wenn Sie den Ordner mit Qt-Bibliotheken zu Ihrem LD_LIBRARY_PATH hinzufügen, startet die Anwendung? –

Antwort

0

Ich habe es gelöst, indem ich die Anwendung mit einem Startskript von http://doc.qt.io/qt-5/linux-deployment.html starte. Aber wenn jemand eine Idee hat, wie man es lösen kann, ohne ein Skript zu benutzen, würde ich gerne hören wie. Auf dem qt doc, der gleiche Link wie oben, heißt es, dass es möglich sein sollte, es mit nur rpath zu tun.

Verwandte Themen