Qt 5.11 - Qt Configure Options

Qt कॉन्फ़िगर विकल्प




qt

Qt कॉन्फ़िगर विकल्प

configure एक कमांड-लाइन टूल है जो निर्धारित करता है कि किसी विशेष प्लेटफॉर्म के लिए क्यूटी कैसे बनाया जाए। कॉन्फ़िगर क्यूटी में एक सुविधा को बाहर कर सकता है और साथ ही यह भी निर्धारित कर सकता है कि मेजबान प्लेटफॉर्म पर क्यूटी कैसे बनाता है और अनुप्रयोगों को तैनात करता है। यह पृष्ठ कुछ कॉन्फ़िगर किए गए विकल्पों पर चर्चा करता है, लेकिन विकल्पों की पूरी सूची के लिए, कमांड configure -h दर्ज करें। कॉन्फ़िगर मुख्य Qt स्रोत निर्देशिका से चलाया जाना चाहिए।

जब तक अन्यथा नहीं कहा जाता है, इस पृष्ठ में कमांड लिनक्स प्लेटफॉर्म के लिए हैं। MacOS पर और विंडोज पर, PATH और निर्देशिका संरचना अलग हैं, इसलिए कमांड अलग-अलग होंगे। साथ ही, विंडोज सिस्टम पर, कॉन्फ़िगर स्क्रिप्ट को config.bat कहा जाता है

configure चलाने के बाद, चुने हुए टूलकिन से संबंधित टूल make

निर्देशिका, निर्माण, और निर्देशिकाओं को स्थापित करें

स्रोत निर्देशिका में स्रोत कोड होता है जो स्रोत पैकेज या गिट रिपॉजिटरी से प्राप्त होता है। बिल्ड डायरेक्टरी वह जगह है जहाँ बिल्ड-संबंधित फाइलें जैसे मेकफाइल्स, ऑब्जेक्ट फाइल्स और अन्य इंटरमीडिएट फाइलें स्टोर की जाती हैं। इंस्टॉल निर्देशिका वह जगह है जहां बायनेरी और लाइब्रेरी स्थापित की जाती हैं, सिस्टम द्वारा या एप्लिकेशन द्वारा उपयोग के लिए।

इन निर्देशिकाओं को छाया-निर्माण और -prefix विकल्प का उपयोग करके अलग रखने की सिफारिश की -prefix है। यह आपको निर्माण कलाकृतियों और बायनेरिज़ से क्यूटी स्रोत के पेड़ को साफ रखने में सक्षम बनाता है, जो एक अलग निर्देशिका में संग्रहीत होते हैं। यदि आप एक ही स्रोत ट्री से कई बिल्ड करना चाहते हैं, लेकिन विभिन्न कॉन्फ़िगरेशन के लिए यह विधि बहुत सुविधाजनक है। छाया-निर्माण के लिए, एक अलग निर्देशिका से configure चलाएँ:

mkdir ~/qt-build
cd ~/qt-build
~/qt-source/configure -prefix /opt/Qt5.9
qmake

-prefix विकल्प के साथ कॉन्फ़िगर करने का अर्थ है कि Qt बायनेरिज़ और लाइब्रेरीज़ को किसी अन्य निर्देशिका में स्थापित किया गया है, जो इस मामले में /opt/Qt5.9 है। रनिंग qmake ~ / क्यूटी-बिल्ड डायरेक्टरी में qmake बनाता है न कि सोर्स डायरेक्टरी में। Makefiles जगह में होने के बाद, Qt बायनेरिज़ और लाइब्रेरी बनाने के लिए निम्नलिखित कमांड्स चलाएं और उन्हें स्थापित करें:

make
make install

नोट: 'मेक इनस्टॉल' स्टेप की आवश्यकता केवल तभी होती है जब Q- को एक -इंटरफ़िक्स के साथ कॉन्फ़िगर किया जाता है , जो कि यूनिक्स-आधारित प्लेटफ़ॉर्म पर डिफ़ॉल्ट है जब तक कि -developer-build कॉन्फ़िगर विकल्प का उपयोग नहीं किया जाता है। विंडोज पर, Qt को डिफ़ॉल्ट रूप से एक गैर-उपसर्ग बिल्ड के रूप में कॉन्फ़िगर किया गया है।

नोट: -developer-build Qt को विकसित करने के लिए है न कि शिपिंग अनुप्रयोगों के लिए। इस तरह के निर्माण में मानक निर्माण की तुलना में अधिक निर्यात किए गए प्रतीक होते हैं और उच्च चेतावनी स्तर के साथ संकलित होते हैं।

मॉड्यूल और सुविधाएँ

Qt में अलग-अलग modules होते हैं जिनके स्रोत शीर्ष-स्तरीय स्रोत निर्देशिका के अंदर अलग-अलग निर्देशिकाओं में पाए जा सकते हैं। उपयोगकर्ता बिल्ड समय को सीमित करने के लिए विशिष्ट शीर्ष-स्तरीय निर्देशिकाओं को स्पष्ट रूप से बाहर कर सकते हैं। इसके अलावा, प्रत्येक क्यूटी मॉड्यूल में ऐसी विशेषताएं हो सकती हैं जो स्पष्ट रूप से सक्षम या अक्षम हो सकती हैं।

क्यूटी मॉड्यूल को छोड़कर

कॉन्फ़िगर -skip विकल्प शीर्ष स्तर के स्रोत निर्देशिकाओं को Qt बिल्ड से बाहर करने की अनुमति देता है। ध्यान दें कि कई निर्देशिकाओं में कई Qt मॉड्यूल होते हैं। उदाहरण के लिए, Qt बिल्ड से Qt NFC और Qt ब्लूटूथ को बाहर करने के लिए, कॉन्फ़िगर करने के लिए तर्क के रूप में -skip qtconnectivity प्रदान करें।

./configure -skip qtconnectivity

सहित या सुविधाओं को छोड़कर

-feature- <feature> और -feature- -no-feature- <सुविधा> विकल्प क्रमशः विशिष्ट सुविधाओं को शामिल और बाहर करते हैं।

उदाहरण के लिए, Accessibility -no-feature-accessibility Accessibility को अक्षम करने के लिए, -no-feature-accessibility को तर्क के रूप में प्रदान करें:

./configure -no-feature-accessibility

कमांड लाइन पर सभी उपलब्ध सुविधाओं की सूची दिखाने के लिए configure -list-features लिस्ट configure -list-features का उपयोग करें। ध्यान दें कि सुविधाएँ अन्य सुविधाओं पर निर्भर हो सकती हैं, इसलिए किसी सुविधा को अक्षम करने से अन्य सुविधाओं पर दुष्प्रभाव पड़ सकता है।

Qt कॉन्फ़िगरेशन उपकरण जो डिवाइस निर्माण के लिए Qt का हिस्सा है, एक सुविधाजनक उपयोगकर्ता इंटरफ़ेस के माध्यम से सुविधाओं और निर्भरताओं को ट्विक करने की अनुमति देता है।

तृतीय-पक्ष पुस्तकालय

Qt स्रोत पैकेज में तृतीय-पक्ष लाइब्रेरी शामिल हैं। यह निर्धारित करने के लिए कि क्यूटी को पुस्तकालयों के सिस्टम संस्करणों का उपयोग करना चाहिए या बंडल संस्करण का उपयोग करना चाहिए, कॉन्फ़िगर करने के लिए लाइब्रेरी के नाम से पहले या तो -qt या -qt पास करें।

नीचे दी गई तालिका तीसरे पक्ष के विकल्पों का सारांश प्रस्तुत करती है:

लाइब्रेरी का नाम Qt में बंडल किया गया सिस्टम में स्थापित
zlib -qt-zlib -system-zlib
libjpeg -qt-libjpeg -system-libjpeg
libpng -qt-libpng -system-libpng
XCB -qt-xcb -system-xcb
xkbcommon -qt-xkbcommon -system-xkbcommon
freetype -qt-freetype -system-freetype
PCRE -qt-pcre -system-pcre
हर्फ़ बज़-एनजी -qt-harfbuzz -system-harfbuzz

यह -qt बजाय -qt का उपयोग करके इन पुस्तकालयों के लिए समर्थन को अक्षम करना भी संभव है। उदाहरण के लिए, सिस्टम के xcb लाइब्रेरी का उपयोग करने और zlib समर्थन को अक्षम करने के लिए, निम्नलिखित दर्ज करें:

./configure -no-zlib -qt-libjpeg -qt-libpng -system-xcb

विकल्पों की पूरी सूची के लिए, configure -help की सहायता से सलाह लें।

संकलक विकल्प

-platform विकल्प Qt स्रोतों के निर्माण के लिए होस्ट प्लेटफ़ॉर्म और कंपाइलर सेट करता है। समर्थित प्लेटफॉर्म और कंपाइलर की सूची समर्थित प्लेटफॉर्म पेज पर मिली है जबकि पूरी सूची qtbase / mkspecill निर्देशिका में उपलब्ध है।

उदाहरण के लिए, उबंटू लिनक्स सिस्टम पर, क्यूटी को कई संकलक जैसे कि क्लैंग या जी ++ द्वारा संकलित किया जा सकता है:

./configure -platform linux-clang
./configure -platform linux-g++
./configure -platform linux-g++-32

Windows मशीनों के लिए, MinGW को संकलित करने के लिए या तो MinGW या Visual Studio टूलचैन का उपयोग किया जा सकता है।

configure.bat -platform win32-g++
configure.bat -platform win32-msvc

बाद में, उत्पन्न Makefiles उपयुक्त संकलक आदेशों का उपयोग करेगा।

क्रॉस-संकलन विकल्प

क्रॉस-प्लेटफ़ॉर्म विकास और परिनियोजन के लिए Qt कॉन्फ़िगर करने के लिए, लक्ष्य प्लेटफ़ॉर्म के लिए डेवलपमेंट टूलचैन को सेट करना होगा। यह सेट अप समर्थित प्लेटफार्मों के बीच भिन्न होता है।

आम विकल्प हैं:

  • -xplatform - लक्ष्य मंच। वैध xplatform विकल्प -platform विकल्प के रूप में ही हैं जो qtbase / mkspecs में पाए जाते हैं।
  • -device - एक विशिष्ट उपकरण या चिपसेट। कॉन्फ़िगर करने वाले उपकरणों की सूची qtbase / mkspecs / उपकरणों में संगत है । अधिक जानकारी के लिए, Devices विकी पृष्ठ पर जाएं।
  • -device-option - अतिरिक्त qmake चर सेट करता है। उदाहरण के लिए, -device-option CROSS_COMPILE= <path-to-toolchain> पर्यावरण चर, CROSS_COMPILE प्रदान करता है, जैसा कि कुछ उपकरणों द्वारा आवश्यक है।

नोट: गैर-डेस्कटॉप लक्ष्य के लिए टूलचैन अक्सर एक तथाकथित sysroot के साथ आते हैं जिसे Qt के खिलाफ कॉन्फ़िगर करने की आवश्यकता होती है।

प्लेटफार्मों के लिए विशिष्ट विकल्प

निम्न पृष्ठ विशिष्ट प्लेटफ़ॉर्म विकास के लिए Qt को कॉन्फ़िगर करने के बारे में दिशानिर्देश प्रदान करते हैं:

विंडोज के लिए ओपन विकल्प

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

-opengl विकल्प का उपयोग Qt को लक्ष्य प्रणाली में OpenGL का उपयोग करने के लिए कॉन्फ़िगर करने के लिए किया जा सकता है, OpenGL ES का एक अलग संस्करण (ANGLE के साथ या बिना), या उपलब्ध OpenGL कार्यान्वयन के बीच गतिशील रूप से स्विच करता है।

configure.bat -opengl dynamic

dynamic विकल्प के साथ, Qt पहले देशी ओपनगैल का उपयोग करने की कोशिश करेगा। यदि वह विफल रहता है, तो यह वापस ANGLE और अंत में ANGLE के रूप में अच्छी तरह से सॉफ़्टवेयर रेंडरिंग के मामले में गिर जाएगा।

configure.bat -opengl desktop

desktop विकल्प के साथ, Qt Windows पर स्थापित OpenGL का उपयोग करता है, यह आवश्यक है कि लक्ष्य Windows मशीन में OpenGL अनुप्रयोग के साथ संगत है। -opengl विकल्प OpenGL ES के दो संस्करण स्वीकार करता है, OpenGL ES 2.0 के लिए es1 या OpenGL ES कॉमन प्रोफाइल के लिए es1

configure.bat -opengl es2

आप -opengl dynamic का भी उपयोग कर सकते हैं, जो एप्लिकेशन को रनटाइम पर उपलब्ध विकल्पों के बीच गतिशील रूप से स्विच करने में सक्षम बनाता है। गतिशील जीएल-स्विचिंग का उपयोग करने के लाभों के बारे में अधिक जानकारी के लिए, ग्राफिक्स ड्राइवर देखें।