Qmake के लिए Qt के किस संस्करण का उपयोग किया जाता है?


31

मुझे ऐसा लगता है कि ऐसा करने का एक सरल तरीका होना चाहिए, लेकिन मेरा googlefu विफल हो रहा है इसलिए मैं वास्तव में कुछ जानकारी की सराहना करता हूं कि कैसे स्विच करने के लिए (या स्थायी रूप से परिवर्तन) क्यूटी के किस संस्करण का उपयोग क्यूमेक करते समय किया जाता है। अगर मैं पूछता हूं कि मुझे कौन सा संस्करण मिलेगा:

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

मैंने QtCreator स्थापित किया है, लेकिन मुझे यकीन नहीं है कि यहाँ से कहाँ जाना है।

जवाबों:


16

यह आवश्यक रूप से यूनिक्स / लिनक्स विशिष्ट नहीं है, इसलिए आप शायद स्टैक ओवरफ्लो पर बेहतर पूछ रहे हैं। कभी भी कम नहीं, QtCreator आमतौर पर वैकल्पिक Qt इंस्टॉल का पता लगाने में काफी अच्छा है, बस एक नई परियोजना बनाएं और Projectsबाईं ओर टैब के नीचे देखें। आप वहां विभिन्न बिल्ड कॉन्फ़िगरेशन सेट कर सकते हैं। प्रत्येक कॉन्फ़िगरेशन के लिए विभिन्न स्थापित संस्करणों से चयन करने के लिए एक ड्रॉप डाउन बॉक्स होना चाहिए।

अन्यथा, ऐसा लगता है QTDIRकि QT संस्करण को सेट करने के लिए पर्यावरण चर का उपयोग किया जाता है। डिफ़ॉल्ट रूप से QtCreator यह /usr/share/qt4मेरे लिए सेट करता है, इसलिए इसे समतुल्य पथ पर सेट करना (यानी वह कॉन्फ़िगरेशन फ़ाइल जहां है) qmake को एक अलग संस्करण के साथ बनाना चाहिए। आप कुछ इस तरह से परीक्षण कर सकते हैं:

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

इसे .proफ़ाइल में सेट करना भी संभव हो सकता है , लेकिन यदि ऐसा है तो यह अनिर्दिष्ट है (जैसा कि बहुत सारे qmakeचर के साथ है)।

इसके अलावा, यदि आप एक विशिष्ट प्रमुख संस्करण के साथ निर्माण करना चाहते हैं, तो qmakeआमतौर पर डिफ़ॉल्ट प्रमुख संस्करण के लिए केवल एक बाइनरी के लिए सहानुभूति होती है। असली बायनेरिज़ हैं qmake-qt4, qmake-qt5आदि भी देखें man qtchooserऔर qtX-defaultडेबियन आधारित सिस्टम पर पैकेज।

अद्यतन करें

qtchooserउबंटू 13.04 और 13.10 के साथ एक बग है जो कि क्यूटी अनुप्रयोगों को अलग-अलग क्यूटी संस्करणों का पता लगाने के तरीके को प्रभावित करता है, https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/117732323 देखें । यह QtCreator को भी प्रभावित कर सकता है।


धन्यवाद! मैं गंजा qmake के बजाय qmake-qt4 का उपयोग करना चाहता था - इतना आसान है, लेकिन मुझे अभी वह जानकारी नहीं मिल पाई जिसकी मुझे जरूरत थी। धन्यवाद!
टैमिसिन माइकल

@TamsynMichael - हाँ, बिन में linux की तरफ क्यूमेक सिर्फ एक सिम्लिंक है। इसलिए, यदि आपने अपडेट-विकल्प का उपयोग किया है, तो आगे और पीछे स्विच करने के लिए, यह आदर्श हो सकता है। यह अपडेट-अल्टरनेटिव्स में नहीं है, और PyQt बिल्ड स्क्रिप्ट जैसी चीजें किसी भी तरह से बाइनरी के लिए एक सीधा संदर्भ चाहती हैं - सिम्लिंक नहीं।
रोबॉटहैंस

13

इसने मुझे -qt=qt5स्विच या QT_SELECT=qt5पर्यावरण चर का उपयोग करने में मदद की ।

$ 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

नाबालिग और पैच संस्करणों के बारे में क्या? हम उदाहरण के लिए, स्पष्ट रूप से 5.12 से अधिक 5.9.4 या 5.11 का चयन कैसे कर सकते हैं?
डेविड जे

4

एक बेहतर तरीका है

यदि आप अपने परिवर्तनों को स्थायी बनाना चाहते हैं, तो आपको /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.confफ़ाइल को संशोधित करने की आवश्यकता है , जो कि एक सहानुभूति है ../../../../share/qtchooser/qt4-x86_64-linux-gnu.conf

यहाँ मेरे सिस्टम के लिए एक उदाहरण है (Ubuntu 17.10 x64, Qt 5.10.1)। मेरा सुझाव है कि आप मूल सिमलिंक फ़ाइल और उसके लक्ष्य दोनों को यथावत रखना चाहते हैं (यदि आप मूल कॉन्फ़िगरेशन को पुनर्प्राप्त करना चाहते हैं तो)। और डिफ़ॉल्ट स्थानों (स्थिरता के लिए) में नई फाइलें भी बनाएं। तो यहाँ कदम हैं:

सिमलिंक फ़ाइल का नाम बदलें:

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

एक नया लक्ष्य कॉन्फ़िगरेशन फ़ाइल बनाएं (किसी भी नाम से):

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

इस फ़ाइल में दो पंक्तियाँ होनी चाहिए: पहली पंक्ति Qt बायनेरिज़ (qmake सहित) का मार्ग है और दूसरी Qt पुस्तकालयों (.so फ़ाइलों सहित) के लिए पथ है। मेरे मामले में यह है

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

इसे सहेजें और इसे बंद करें। default.confनई कॉन्फ़िगरेशन फ़ाइल के लिए एक सिमलिंक बनाएँ :

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 संस्करण जांचें:

qmake --version

अब इसे हमेशा निर्दिष्ट संस्करण का उपयोग करना चाहिए।


2

कुछ डिस्ट्रोब्स जैसे डेबियन जेसी स्टेबल के अनुसार आप निम्न कार्य कर सकते हैं:

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

और बस उस संस्करण का चयन करें जिसकी आपको आवश्यकता है अगर आपको फिर से बदलाव की आवश्यकता है तो बस फिर से तीसरी पंक्ति चलाएं।


2

उपरोक्त उत्तर में से कई काम करेंगे। हालाँकि मैंने व्यक्तिगत रूप से पाया है कि उनमें से कोई भी लगातार नहीं है। उदाहरण के लिए मैं यह कमांड चला सकता हूं:

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

लेकिन अगर मैं एक नया टर्मिनल खोलता हूं और Qt संस्करण की जांच करता हूं, तो यह डिफ़ॉल्ट पर वापस आ जाएगा, और यदि आपके पास Qt के कई संस्करण स्थापित हैं तो डिफ़ॉल्ट वह नहीं हो सकता है जैसा आप चाहते हैं। आप इस कमांड को चलाकर बता सकते हैं:

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

आपके परिवर्तन स्टिक बनाने का एकमात्र तरीका डिफ़ॉल्ट संस्करण को बदलना है। ऐसा करने के लिए, /usr/lib/x86_64-linux-gnu/qtchooser/default.confइस पंक्ति को संपादित करें और बदलें:

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

जहाँ आप qt5जो भी संस्करण बदलना चाहते हैं। आप यह qtchooser -list-versionsदेखने के लिए कमांड का उपयोग कर सकते हैं कि आपके मशीन पर कौन से संस्करण स्थापित हैं।


2

qmake( /usr/bin/qmake) वास्तव में सिर्फ qtchooser( /usr/bin/qtchooser) के लिए एक सहानुभूति है ।

यहाँ एक उद्धरण है 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.

फ़ाइल /etc/xdg/qtchooser/default.confकी तुलना में उच्च प्राथमिकता है /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.confqmakeमेरे सिस्टम के उदाहरण के लिए डिफ़ॉल्ट Qt संस्करण का चयन करने के तरीके यहां दिए गए हैं (Ubuntu 17.10 x64, Qt 5.10.1)।

/etc/xdg/qtchooserनिर्देशिका बनाएँ :

sudo mkdir /etc/xdg/qtchooser

कॉन्फ़िगरेशन फ़ाइल बनाएं और संपादित करें:

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

जैसा कि ऊपर कहा गया है। इस फ़ाइल में दो पंक्तियाँ होनी चाहिए: पहली पंक्ति Qt बायनेरिज़ (qmake सहित) का मार्ग है और दूसरी Qt पुस्तकालयों (.so फ़ाइलों सहित) के लिए पथ है। मेरे मामले में यह होगा:

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

इसे सहेजें और बंद करें। अब qmakeनिर्दिष्ट Qt संस्करण का उपयोग करना चाहिए।


एक सिमलिंक भी काम करता है: 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

यदि आप उपयोग के qt5लिए चाहें , तो qt4:

sudo apt-get install qt4-default

+1, भयानक और सरल, बहुत बुरा यह उत्तर पृष्ठ पर इतना कम था
jpa

0

फेडोरा 23 पर (मेरे) डिफ़ॉल्ट सेटअप में दोनों qt-3.3.8और qt-4.8.5वातावरण होने के लिए / पैकेज को सही संस्करण खोजने के लिए अनुमति देने के लिए /usr/libxx/qt4/bin/अस्थायी रूप से निर्देशिका को जोड़ना आवश्यक था । कोड बनाते समय यह आवश्यक था, समाप्त क्यूटी 4 ऐप को चलाने पर नहीं।PATHcmakeqmake

किसी कारण के लिए qt3 पथ पहले से ही स्थायी रूप से और दुर्भाग्य से वहाँ स्थापित किया गया था PATH, जिसने क्यूटी संस्करण चयनकर्ता को ठीक से काम करने से रोका।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.