Qmake için hangi Qt versiyonunun kullanıldığını nasıl değiştiririm?


31

Bunu yapmanın basit bir yolu olması gerektiğini düşünüyorum, ancak googlefu'm başarısız oluyor, bu yüzden qmake yaparken Qt'nun hangi sürümünün kullanıldığının nasıl değiştirileceği (veya hatta kalıcı olarak değiştirilebileceği) hakkında biraz bilgi sahibi olacağım. Hangi sürümü sorarsam aşağıdakileri alırım:

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

QtCreator'ı yükledim, ancak buradan nereye gideceğimi bilmiyorum.

Yanıtlar:


16

Bu mutlaka Unix / Linux'a özgü değildir, bu yüzden muhtemelen Stack Overflow'ta bunu sormanız daha iyi. Asla daha az olmazsa, QtCreator alternatif Qt kurulumlarını tespit etmede genellikle oldukça iyidir, sadece yeni bir proje oluşturun ve Projectssoldaki sekmenin altına bakın . Orada farklı yapı yapılandırmaları ayarlayabilirsiniz. Her yapılandırma için çeşitli yüklü sürümler arasından seçim yapmak için bir açılır kutu bulunmalıdır.

Aksi takdirde, QTDIRQt versiyonunu ayarlamak için kullanılan çevresel değişkene benziyor . Varsayılan olarak QtCreator bunu /usr/share/qt4benim için ayarlar , bu nedenle eşdeğer yola (yani yapılandırma dosyalarının bulunduğu yere) ayarlamak qmake'yi farklı bir sürümle derlemelidir. Gibi bir şey ile test edebilirsiniz:

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

Bunu .prodosyada ayarlamak da mümkün olabilir , ancak öyleyse belgelenmemiş (oldukça fazla qmakedeğişkende olduğu gibi).

Ayrıca, belirli bir ana sürümle kurmak istiyorsanız qmake, genellikle varsayılan ana sürüm için bir ikili dosyaya bağlanır. Gerçek ikili vardır qmake-qt4, qmake-qt5Ayrıca bkz vb man qtchooserve qtX-defaultDebian tabanlı sistemlerde paketler.

Güncelleştirme

qtchooserUbuntu 13.04 ve 13.10'da, Qt uygulamalarının farklı Qt sürümlerini algılama biçimini etkilediği görünen bir hata var , bkz. Https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/1177823 . Bu QtCreator'ı da etkileyebilir.


Teşekkürler! Kel qmake yerine qmake-qt4 kullanmam gerekiyordu - çok kolay, ama ihtiyacım olan bilgiyi bulamadım. Teşekkürler!
Tamsyn Michael,

@TamsynMichael - Evet, linux tarafında qmake sadece bir sembolik bağlantıdır. Dolayısıyla, ileri geri geçiş yapmak için güncelleme alternatifleri gibi bir şey kullandıysanız, bu ideal olabilir. Güncelleme alternatiflerinde bulunmuyor ve PyQt derleme betikleri gibi şeyler, ikili linke doğrudan bir referans istiyor - bir sembolik bağlantı değil.
RobotHanans

13

-qt=qt5Anahtar veya QT_SELECT=qt5ortam değişkenini kullanmama yardımcı oldu .

$ 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

Peki ya küçük ve yama sürümleri? Örneğin, 5,12'den 5,9,4 veya 5,11'i açık bir şekilde nasıl seçebiliriz?
DavidJ

4

Bir yoktur daha iyi bir yöntem .

Değişikliklerinizi kalıcı hale getirmek istiyorsanız /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf, bir bağlantı olan dosyayı değiştirmeniz gerekir ../../../../share/qtchooser/qt4-x86_64-linux-gnu.conf.

İşte benim sistem için bir örnek (Ubuntu 17.10 x64, Qt 5.10.1). Hem orijinal bağlantı dosyasını hem de hedefini yerinde tutmanızı öneririm (orijinal yapılandırmayı kurtarmak istemeniz durumunda). Ayrıca yeni dosyaları varsayılan konumlarda (tutarlılık için) oluşturun. Yani burada adımlar:

Sembolik bağlantı dosyasını yeniden adlandırın:

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

Yeni bir hedef yapılandırma dosyası oluşturun (herhangi bir adla):

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

Bu dosya iki satır içermelidir: ilk satır Qt ikili dosyalarına giden yoldur (qmake dahil) ve ikinci satır Qt kitaplıklarına giden yoldur (.so dosyaları dahil). Benim durumumda

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

Sakla ve kapat. default.confYeni konfigürasyon dosyasına bir link oluşturun :

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

Qt versiyonunu kontrol et:

qmake --version

Şimdi her zaman belirtilen sürümü kullanması gerekir.


2

Debian Jessie Stable gibi bazı dağıtımlar altında aşağıdakileri yapabilirsiniz:

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

İhtiyacınız olan sürümü seçin ve tekrar değiştirmeniz gerekirse üçüncü satırı tekrar çalıştırın.


2

Yukarıdaki cevapların çoğu işe yarayacak. Ancak şahsen bunların hiçbirinin ısrarcı olmadığını buldum. Örneğin bu komutu çalıştırabilirim:

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

Fakat eğer yeni bir terminal açıp Qt versiyonunu kontrol edersem, varsayılan ayarlara geri dönersiniz ve eğer kurulu birden fazla Qt versiyonuna sahipseniz varsayılanı istediğiniz olan olmayabilir. Bu komutu çalıştırarak söyleyebilirsiniz:

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

Yaptığınız değişiklikleri yapmanın tek yolu, varsayılan sürümü değiştirmektir. Bunu yapmak için /usr/lib/x86_64-linux-gnu/qtchooser/default.confbu satırı düzenleyin ve değiştirin:

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

qt5İstediğin sürüme değiştirdiğin yer . qtchooser -list-versionsMakinenize hangi sürümlerin yüklendiğini görmek için komutu kullanabilirsiniz .


2

qmake( /usr/bin/qmake) Aslında sadece sembolik bağdır qtchooser( /usr/bin/qtchooser).

İşte bir teklif man 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.

Dosya /etc/xdg/qtchooser/default.conföncekinden daha yüksek önceliğe sahiptir /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf. İşte qmakesistemim için varsayılan Qt versiyonunu seçme adımları (Ubuntu 17.10 x64, Qt 5.10.1).

/etc/xdg/qtchooserDizini oluştur :

sudo mkdir /etc/xdg/qtchooser

Yapılandırma dosyasını oluşturun ve düzenleyin:

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

Yukarıda da belirtildiği gibi. bu dosya iki satır içermelidir: ilk satır Qt ikili dosyalarına giden yoldur (qmake dahil) ve ikincisi Qt kitaplıklarına giden yoldur (.so dosyaları dahil). Benim durumumda olacak:

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

Sakla ve kapat. Şimdi qmakebelirtilen Qt sürümünü kullanmalısınız.


Bir sembolik bağı da çalışır: sudo mkdir -p / etc / xdg / qtchooser && sudo ln -s /usr/share/qtchooser/qt5-x86_64-linux-gnu.conf /etc/xdg/qtchooser/default.conf
maharvey67

1
sudo apt-get install qt5-default

İsterseniz qt5, qt4kullanmak için:

sudo apt-get install qt4-default

+1, müthiş ve basit, çok kötü bu cevap sayfada çok düşüktü
jpa

0

Fedora 23 (my) varsayılan kurulum hem sahip olduğu qt-3.3.8ve qt-4.8.5ortamları o eklemek de gerekliydi /usr/libxx/qt4/bin/geçici dizini PATHizin vermek cmake/ qmakepaketleri doğru sürümünü bulmak için. Bu, bitmiş QT4 uygulamasını çalıştırırken değil, kodu oluştururken gerekliydi.

Bazı nedenlerden dolayı QT3 yolu zaten kurulmuş PATHve QT sürüm seçicisinin düzgün çalışmasını önleyen maalesef, başında .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.