Im Allgemeinen sind Bibliotheken in kleineren Versionen abwärtskompatibel. Daher sollten Sie das System Qt5 anstelle des gelieferten verwenden können. Sie können dies tun, indem Sie die 5.6-Bibliotheksdateien entfernen. Wenn dies die einzigen Bibliotheksdateien sind, die in diesem Verzeichnis importiert werden, können Sie sie $LD_LIBRARY_PATH
vollständig weglassen .
Wie mache ich libQtCore v5.10.1 meiner Distribution verfügbar, wenn die gelieferte Version 5.6 der Anwendung verwendet wird?
1) Wenn ich von der Befehlszeile aus Verstehe starte, sehe ich Folgendes. Alles ist ok. :
[me@box1 ~]# understand
2) Unter der Überschrift "Erste Schritte" auf der Registerkarte "Erste Schritte":
Wenn ich auf einen der Links klicke, "Hilfe verstehen ...", "Häufigste Fragen ...", "Perl-API-Hilfe ...", "Python-API-Hilfe ..." und "SciTools-Unterstützung". . "und außerdem auf die gleichen Links im" Hilfe "-Menü, dann werden die folgenden Fehler zum Terminalfenster hinzugefügt und nichts passiert:
[me@box1 4.4.19 vpn-client]# understand kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by kde-open5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5KIOWidgets.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5KIOCore.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5I18n.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5CoreAddons.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5JobWidgets.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5Service.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5Completion.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5IconThemes.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5WindowSystem.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5ConfigWidgets.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5WidgetsAddons.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5ConfigGui.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5ConfigCore.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libQt5DBus.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5DBusAddons.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5Auth.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libQt5X11Extras.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libQt5Svg.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5Archive.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5ItemViews.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5Codecs.so.5) kde-open5: /home/me/bin/scitools/bin/linux64/libQt5Core.so.5: version 'Qt_5.10' not found (required by /usr/lib/libKF5GuiAddons.so.5)
3) qmake
informiert mich, dass Qt v5.10.1 von meiner Distribution (Arch Linux) installiert wird:
[me@box1 ~]# qmake -version QMake version 3.1 Using Qt version 5.10.1 in /usr/lib
4) readelf
informiert mich (und bestätigt qmake
die Ausgabe), dass meine Distribution Qt Core v5.10.1 installiert hat:
[me@box1 ~]# readelf -V /usr/lib/libQt5Core.so.5.10.1 | grep -ie 'Qt_5\.' d7c: 9h(Qt_5.5) bh(Qt_5.7) e (Qt_5.10) 3 (Qt_5) d80: 5h(Qt_5.1) ch(Qt_5.8) 7h(Qt_5.3) 8h(Qt_5.4) d84: ah(Qt_5.6) dh(Qt_5.9) 4h(Qt_5.0) 6h(Qt_5.2) 149c: 3 (Qt_5) e (Qt_5.10) 3 (Qt_5) 2 (Qt_5_PRIVATE_API) 14c0: 3 (Qt_5) 4 (Qt_5.0) 3 (Qt_5) 3 (Qt_5) 14c4: 3 (Qt_5) 3 (Qt_5) 5 (Qt_5.1) 3 (Qt_5) 14c8: 6 (Qt_5.2) 2 (Qt_5_PRIVATE_API) 7 (Qt_5.3) 3 (Qt_5) 14cc: 8 (Qt_5.4) 3 (Qt_5) 3 (Qt_5) 3 (Qt_5) 14d0: 3 (Qt_5) 3 (Qt_5) 9 (Qt_5.5) 3 (Qt_5) 14d4: 3 (Qt_5) a (Qt_5.6) 3 (Qt_5) 3 (Qt_5) 14d8: 3 (Qt_5) 2 (Qt_5_PRIVATE_API) b (Qt_5.7) 3 (Qt_5) 14dc: 2 (Qt_5_PRIVATE_API) 3 (Qt_5) c (Qt_5.8) 3 (Qt_5) 14e0: 3 (Qt_5) d (Qt_5.9) 3 (Qt_5) 2 (Qt_5_PRIVATE_API) 0x0054: Rev: 1 Flags: none Index: 4 Cnt: 2 Name: Qt_5.0 0x0078: Rev: 1 Flags: none Index: 5 Cnt: 2 Name: Qt_5.1 0x0094: Parent 1: Qt_5.0 0x009c: Rev: 1 Flags: none Index: 6 Cnt: 2 Name: Qt_5.2 0x00b8: Parent 1: Qt_5.1 0x00c0: Rev: 1 Flags: none Index: 7 Cnt: 2 Name: Qt_5.3 0x00dc: Parent 1: Qt_5.2 0x00e4: Rev: 1 Flags: none Index: 8 Cnt: 2 Name: Qt_5.4 0x0100: Parent 1: Qt_5.3 0x0108: Rev: 1 Flags: none Index: 9 Cnt: 2 Name: Qt_5.5 0x0124: Parent 1: Qt_5.4 0x012c: Rev: 1 Flags: none Index: 10 Cnt: 2 Name: Qt_5.6 0x0148: Parent 1: Qt_5.5 0x0150: Rev: 1 Flags: none Index: 11 Cnt: 2 Name: Qt_5.7 0x016c: Parent 1: Qt_5.6 0x0174: Rev: 1 Flags: none Index: 12 Cnt: 2 Name: Qt_5.8 0x0190: Parent 1: Qt_5.7 0x0198: Rev: 1 Flags: none Index: 13 Cnt: 2 Name: Qt_5.9 0x01b4: Parent 1: Qt_5.8 0x01bc: Rev: 1 Flags: none Index: 14 Cnt: 2 Name: Qt_5.10 0x01d8: Parent 1: Qt_5.9
5) readelf
informiert mich darüber, dass Understand mit Qt v5.6 ausgeliefert wird:
[me@box1 ~]# readelf -V /home/me/bin/scitools/bin/linux64/libQt5Core.so.5 | grep -ie 'Qt_5\.' 9e8: 3 (Qt_5) 3 (Qt_5) 4 (Qt_5.0) 2 (Qt_5_PRIVATE_API) 9ec: 3 (Qt_5) 3 (Qt_5) 5 (Qt_5.1) 3 (Qt_5) 9f0: 6 (Qt_5.2) 3 (Qt_5) 2 (Qt_5_PRIVATE_API) 3 (Qt_5) 9f4: 2 (Qt_5_PRIVATE_API) 7 (Qt_5.3) 3 (Qt_5) 8 (Qt_5.4) 9f8: 3 (Qt_5) 3 (Qt_5) 9 (Qt_5.5) 3 (Qt_5) 9fc: 3 (Qt_5) 3 (Qt_5) a (Qt_5.6) 2 (Qt_5_PRIVATE_API) d90: 3 (Qt_5) 5h(Qt_5.1) 4h(Qt_5.0) a (Qt_5.6) d94: 8h(Qt_5.4) 9h(Qt_5.5) 6h(Qt_5.2) 7h(Qt_5.3) 0x0054: Rev: 1 Flags: none Index: 4 Cnt: 2 Name: Qt_5.0 0x0078: Rev: 1 Flags: none Index: 5 Cnt: 2 Name: Qt_5.1 0x0094: Parent 1: Qt_5.0 0x009c: Rev: 1 Flags: none Index: 6 Cnt: 2 Name: Qt_5.2 0x00b8: Parent 1: Qt_5.1 0x00c0: Rev: 1 Flags: none Index: 7 Cnt: 2 Name: Qt_5.3 0x00dc: Parent 1: Qt_5.2 0x00e4: Rev: 1 Flags: none Index: 8 Cnt: 2 Name: Qt_5.4 0x0100: Parent 1: Qt_5.3 0x0108: Rev: 1 Flags: none Index: 9 Cnt: 2 Name: Qt_5.5 0x0124: Parent 1: Qt_5.4 0x012c: Rev: 1 Flags: none Index: 10 Cnt: 2 Name: Qt_5.6 0x0148: Parent 1: Qt_5.5
6) ldd
informiert mich darüber, dass Understand die gelieferte Version von Qt verwenden wird:
[me@box1 ~]# ldd /home/me/bin/scitools/bin/linux64/understand.bin | grep -ie 'scitools' libQt5Concurrent.so.5 => /home/me/bin/scitools/bin/linux64/libQt5Concurrent.so.5 (0x00007f0a63b77000) libQt5Sql.so.5 => /home/me/bin/scitools/bin/linux64/libQt5Sql.so.5 (0x00007f0a63af9000) libQt5Network.so.5 => /home/me/bin/scitools/bin/linux64/libQt5Network.so.5 (0x00007f0a624dd000) libQt5Xml.so.5 => /home/me/bin/scitools/bin/linux64/libQt5Xml.so.5 (0x00007f0a63abd000) libQt5PrintSupport.so.5 => /home/me/bin/scitools/bin/linux64/libQt5PrintSupport.so.5 (0x00007f0a63a4d000) libastyle.so => /home/me/bin/scitools/bin/linux64/libastyle.so (0x00007f0a6229a000) libQt5Widgets.so.5 => /home/me/bin/scitools/bin/linux64/libQt5Widgets.so.5 (0x00007f0a61c12000) libQt5Gui.so.5 => /home/me/bin/scitools/bin/linux64/libQt5Gui.so.5 (0x00007f0a61732000) libQt5Core.so.5 => /home/me/bin/scitools/bin/linux64/libQt5Core.so.5 (0x00007f0a6117a000)
7) Das Bash-Skript understand
, das gestartet wird, understand.bin
enthält Folgendes:
#!/bin/bash scriptdir=`dirname $0` export LD_LIBRARY_PATH=$scriptdir unset QT_PLUGIN_PATH $0.bin "$@"
8) Wenn Sie das understand
Skript kopieren und die Zeile hinzufügen, wurde echo "\$LD_LIBRARY_PATH after === $LD_LIBRARY_PATH"
Folgendes festgelegt:
$LD_LIBRARY_PATH after === /home/me/bin/scitools/bin/linux64
9) Offensichtlich suchen die Bibliotheken, die den Fehler werfen, eine Qt v5.10 Core-Bibliothek. Sie finden jedoch die Qt v5.6 Core-Bibliothek, die mit Understand ausgeliefert wurde.
Also fügte ich einen Symlink zu dem Verständnisverzeichnis hinzu mit:
[me@box1 ~]# ln -sf /usr/lib/libQt5Core.so.5.10.1 /home/me/bin/scitools/bin/linux64/libQt5Core.so.5.10
Das hat sich aber nicht geändert.
Ich fuhr dann fort, die Kopie des "Verstehen" -Bash-Skripts ( understand-test
) zu ändern, und änderte die Zeile export LD_LIBRARY_PATH=$scriptdir
in export LD_LIBRARY_PATH=$scriptdir:/usr/lib
. Das hat sich aber auch nicht geändert.
Während /home/me/bin/scitools/bin/linux64/libQt5Core.so.5
(v5.6) in Gebrauch ist, was kann ich tun Bibliotheken machen wie /usr/lib/libKF5KIOWidgets.so.5
, /usr/lib/libKF5KIOCore.so.5
usw. finden und v5.10.1 verwenden /usr/lib/libQt5Core.so.5.10.1
?
1 Antwort auf die Frage
Verwandte Probleme
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
10
Wie kann ich die Bash-Historie durchsuchen und einen Befehl erneut ausführen?
-
2
Kann die Ausgabe eines Befehls an zwei andere Befehle weitergeleitet werden?
-
8
Benennen Sie eine Gruppe von Dateien mit einem Befehl um
-
2
Warum aktualisiert sich mein Pfad nicht * jetzt *?
-
5
Wie entferne ich einen symbolischen Link zu einem Verzeichnis?
-
8
Rette mich vor dem Kauderwelsch
-
9
Wie kann ich jeder Zeile einer Textdatei eine Zeilennummer und einen Tabulator voranstellen?
-
1
Wann sollte ich Konfigurationen in .bashrc vs einfügen? .bash_profile?
-
1
Umleitung: Wie kam das zusätzliche Wort in die Datei?