it-swarm.com.de

Wie ändere ich, welche Version von Qt für qmake verwendet wird?

Ich bin der Meinung, dass es einen einfachen Weg geben sollte, dies zu tun, aber mein GoogleFU schlägt fehl. Daher würde ich mich sehr über einige Informationen darüber freuen, wie man wechselt (oder sogar dauerhaft ändert), welche Version von Qt bei qmake verwendet wird. Wenn ich frage, welche Version ich bekomme, bekomme ich folgendes:

~ $ qmake --version
QMake version 3.0
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu

Ich habe QtCreator installiert, bin mir aber nicht sicher, wohin ich von hier aus gehen soll.

31
Tamsyn Michael

Dies ist nicht unbedingt Unix/Linux-spezifisch, daher sollten Sie dies wahrscheinlich besser bei Stack Overflow erfragen. Trotzdem ist QtCreator normalerweise recht gut darin, alternative Qt-Installationen zu erkennen. Erstellen Sie einfach ein neues Projekt und sehen Sie sich die Registerkarte Projects auf der linken Seite an. Dort können Sie verschiedene Build-Konfigurationen festlegen. Für jede Konfiguration sollte ein Dropdown-Feld zur Auswahl aus den verschiedenen installierten Versionen vorhanden sein.

Andernfalls scheint die Umgebungsvariable QTDIR zum Festlegen der Qt-Version verwendet zu werden. Standardmäßig setzt QtCreator dies für mich auf /usr/share/qt4. Wenn Sie es also auf den entsprechenden Pfad setzen (dh auf den Pfad, in dem sich die Konfigurationsdateien befinden), sollte qmake mit einer anderen Version erstellt werden. Sie könnten mit so etwas testen:

QTDIR=/usr/share/qtX qmake --version

Es kann auch möglich sein, dies in der Datei .pro Festzulegen, aber wenn ja, ist es nicht dokumentiert (wie bei ziemlich vielen qmake -Variablen).

Wenn Sie mit einer bestimmten Hauptversion erstellen möchten, wird qmake normalerweise nur mit einer Binärdatei für die Standard-Hauptversion verknüpft. Die echten Binärdateien sind qmake-qt4, qmake-qt5 Usw. Siehe auch man qtchooser Und die qtX-default - Pakete auf Debian-basierten Systemen.

Aktualisieren

Es gibt einen Fehler mit qtchooser unter Ubuntu 13.04 und 13.10, der die Art und Weise zu beeinflussen scheint, wie Qt-Anwendungen unterschiedliche Qt-Versionen erkennen, siehe https://bugs.launchpad.net/ubuntu/+source/qt4) -x11/+ bug/117782 . Dies kann auch QtCreator betreffen.

16
Graeme

Es hat mir geholfen, -qt=qt5 switch oder QT_SELECT=qt5 Umgebungsvariable.

$ qmake --version
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu

$ qmake -qt=qt5 --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu

$ QT_SELECT=qt5 qmake --version
QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu
13
pevik

Es gibt eine bessere Methode .

Wenn Sie Ihre Änderungen dauerhaft vornehmen möchten, müssen Sie die Datei /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf Ändern, die ein Symlink zu ../../../../share/qtchooser/qt4-x86_64-linux-gnu.conf Ist.

Hier ist ein Beispiel für mein System (Ubuntu 17.10 x64, Qt 5.10.1). Ich würde vorschlagen, sowohl die ursprüngliche Symlink-Datei als auch das Ziel beizubehalten (falls Sie die ursprüngliche Konfiguration wiederherstellen möchten). Erstellen Sie außerdem die neuen Dateien an den Standardspeicherorten (aus Gründen der Konsistenz). Also hier sind die Schritte:

Benennen Sie die Symlink-Datei um:

Sudo mv /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf_orig

Erstellen Sie eine neue Zielkonfigurationsdatei (mit einem beliebigen Namen):

gksudo gedit /usr/share/qtchooser/my_Qt_5.10.1_Desktop_gcc_x64.conf

Diese Datei muss zwei Zeilen enthalten: Die erste Zeile ist der Pfad zu den Qt-Binärdateien (einschließlich qmake) und die zweite der Pfad zu den Qt-Bibliotheken (einschließlich .so-Dateien). In meinem Fall ist es

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

Speichern Sie es und schließen Sie es. Erstellen Sie einen Symlink default.conf Zur neuen Konfigurationsdatei:

ln -s /usr/share/qtchooser/my_Qt_5.10.1_Destop_gcc_x64.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

Überprüfen Sie Ihre Qt-Version:

qmake --version

Jetzt sollte immer die angegebene Version verwendet werden.

4
vstepaniuk

qmake (/usr/bin/qmake) ist eigentlich nur ein Symlink zu qtchooser (/usr/bin/qtchooser).

Hier ist ein Zitat ausman qtchooser:

FILES
       /etc/xdg/qtchooser/default.conf
              System-wide  configuration  files. Each has two lines, the first
              is the path to the binaries and the second is the path to the Qt
              libraries.  If  a default.conf is provided, the settings from it
              will be automatically used in case nothing else is selected.

       $HOME/.config/qtchooser/*.conf
              User configuration files.

Die Datei /etc/xdg/qtchooser/default.conf hat eine höhere Priorität als /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf. Hier sind die Schritte zum Auswählen der Standard-Qt-Version für qmake am Beispiel meines Systems (Ubuntu 17.10 x64, Qt 5.10.1).

Erstellen Sie die /etc/xdg/qtchooser Verzeichnis:

Sudo mkdir /etc/xdg/qtchooser

Erstellen und bearbeiten Sie die Konfigurationsdatei:

gksudo gedit /etc/xdg/qtchooser/default.conf

Wie oben gesagt. Diese Datei muss zwei Zeilen enthalten: Die erste Zeile ist der Pfad zu den Qt-Binärdateien (einschließlich qmake) und die zweite der Pfad zu den Qt-Bibliotheken (einschließlich .so-Dateien). In meinem Fall wird es sein:

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

Speichern Sie es und schließen Sie es. Jetzt sollte qmake die angegebene Qt-Version verwenden.

2
vstepaniuk

Viele der oben genannten Antworten werden funktionieren. Ich persönlich habe jedoch festgestellt, dass keiner von ihnen hartnäckig ist. Z.B. Ich kann diesen Befehl ausführen:

$ QT_SELECT=qt5 qmake --version
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

Wenn ich jedoch ein neues Terminal öffne und die Qt-Version überprüfe, wird die Standardeinstellung wiederhergestellt. Wenn Sie mehrere Versionen von Qt installiert haben, ist die Standardeinstellung möglicherweise nicht die gewünschte. Sie können dies feststellen, indem Sie diesen Befehl ausführen:

$ qtchooser -print-env
QT_SELECT="default"
QTTOOLDIR=...
QTLIBDIR=...

Die einzige Möglichkeit, Ihre Änderungen beizubehalten, besteht darin, die Standardversion zu ändern. Bearbeiten Sie dazu /usr/lib/x86_64-linux-gnu/qtchooser/default.conf Und ändern Sie diese Zeile:

/usr/lib/x86_64-linux-gnu/qt5/bin

Wo Sie qt5 Auf die gewünschte Version ändern. Mit dem Befehl qtchooser -list-versions Können Sie sehen, welche Versionen auf Ihrem Computer installiert sind.

2
Matt

Unter einigen Distributionen wie Debian Jessie Stable können Sie Folgendes tun:

Sudo apt-get install -y qt4-qmake qt4-dev-tools
Sudo update-alternatives --install "/usr/bin/qmake" "qmake" "/usr/bin/qmake-qt4" 40
Sudo update-alternatives --config qmake

Und wählen Sie einfach die Version aus, die Sie benötigen, wenn Sie erneut Änderungen benötigen. Führen Sie einfach die dritte Zeile erneut aus.

2
inukaze
Sudo apt-get install qt5-default

Wenn du willst qt5, zum qt4 verwenden:

Sudo apt-get install qt4-default

In (meinem) Standard-Setup auf Fedora 23 mit beiden qt-3.3.8 und qt-4.8.5 Umgebungen war es auch notwendig, die /usr/libxx/qt4/bin/ Verzeichnis vorübergehend auf PATH, damit die Pakete cmake/qmake die richtige Version finden können. Dies war beim Erstellen des Codes erforderlich, nicht beim Ausführen der fertigen QT4-App.

Aus irgendeinem Grund wurde der QT3-Pfad dort bereits dauerhaft und leider zu Beginn des PATH installiert, wodurch die ordnungsgemäße Funktion des QT-Versionswählers verhindert wurde.

0
Gunnar