2015-09-11 14 views
13

मैंने अपने विंडोज 7 पर क्यूटी निर्माता के साथ क्यूटी एसडीके स्थापित किया है। एलएलवीएम & क्लैंग भी स्थापित है। सीएमके पहले से ही स्थापित किया गया था। बाद में क्लैंग को एक कंपाइलर के रूप में जोड़ा गया: टूल्स -> विकल्प ... -> & चलाएं -> कंपाइलरक्लेंग का उपयोग विंडोज पर क्यूटी निर्माता के साथ एक कंपाइलर के रूप में कैसे करें?

फिर मैंने क्लैंग किट बनाया है। हालांकि नई परियोजना (सरल कंसोल एप्लिकेशन) बनाने के दौरान मेरे पास क्लैंग किट चुनने की कोई क्षमता नहीं है। केवल autodetected एमएसवीसी किट हैं।

शायद समस्या यह है कि क्लैंग किट में "क्यूटी संस्करण" खाली है। लेकिन इसके लिए qmake कहां प्राप्त करें?

उत्तर

10

आपके पास क्लैंग के साथ उचित संकलित क्यूटी लाइब्रेरी भी होनी चाहिए। डाउनलोड पेज में विंडोज के लिए क्यूटी का कोई क्लैंग बिल्ड नहीं है। तो आपको अपनी मशीन पर निर्माण वातावरण तैयार करना होगा और क्यूटी स्रोत को संकलित करना होगा और फिर अपने किट के "क्यूटी संस्करण" फ़ील्ड में qmake बाइनरी पथ असाइन करना होगा। या बस क्यूटी बाइनरी बिल्ड के लिए एक और कंपाइलर का उपयोग करें जिसके लिए डाउनलोड पेज पर पहले से मौजूद है।

+1

जैसा कि मैं समझता हूं कि क्लैंग उस समय सी ++ के लिए सबसे अच्छा क्रॉस प्लेटफार्म कंपाइलर है, इसलिए मैं इसका उपयोग करना चाहता हूं। क्या आपका मतलब स्रोत या कुछ विशेष भागों से संपूर्ण क्यूटी संकलित करना है? हो सकता है कि प्रक्रिया के कुछ दस्तावेज हों? –

+0

आपको कम से कम उन मॉड्यूल को संकलित करना है, जिन्हें आप कोर, विगेट्स जैसे उपयोग करना चाहते हैं .... हो सकता है कि आप विंडोज़ पर क्लैंग के साथ क्यूटी संकलित करते समय कई परेशानियों में जा सकें, क्योंकि केवल वीएस और मिनजीडब्ल्यू कंपाइलर्स को कहा जाता है प्रलेखन में विंडोज़ पर समर्थित और परीक्षण किया गया: http://doc.qt.io/qt-5/windows-requirements.html#sdks-and-compilers – Nejat

+0

@Nejat आप निम्न चरणों के साथ थोड़ा और विशिष्ट हो सकते हैं: * 1) आपको अपनी मशीन * और * 2 पर निर्माण वातावरण तैयार करना है) क्यूटी स्रोत संकलित करें * और फिर * 3) अपने किट * के "क्यूटी संस्करण" फ़ील्ड में qmake बाइनरी पथ असाइन करें। – cross

4

आजकल, एक mkspec के साथ क्यूटी जहाजों को win32-clang-msvc कहा जाता है। यह clang-cl का उपयोग करता है, जो दृश्य आउटपुट उत्पन्न करता है जो दृश्य स्टूडियो कंपाइलर के साथ मिलकर काम करता है।

मैंने नवीनतम 32 बिट एलएलवीएम/क्लैंग 5.0 टूलचैन स्थापित किया है, इसे स्थापित करने के बाद इसे स्वचालित रूप से सी ++ - कंपाइलर "एमएसवीसी2015 पर आधारित एलएलवीएम 32 बिट" के रूप में पहचाना गया था। मेरे पास प्रीबिल्ट क्यूटी संस्करण "क्यूटी 5.9.2 एमएसवीसी2015 32 बिट" है जो मेरे सिस्टम पर स्थापित है, जो एक ही आर्किटेक्चर और एमएसवीसी संस्करण का उपयोग करता है।

win32-clang-msvc mkspec का उपयोग करने के लिए, मैंने किट "डेस्कटॉप क्यूटी 5.9.2 एमएसवीसी2015 32 बिट" को क्लोन किया। केवल एक चीज जिसे मैं संशोधित करना था, win32-clang-msvc को क्यूटी mkspec के रूप में दर्ज करना था और सी ++ कंपाइलर के रूप में "एमएसवीसी2015 पर आधारित एलएलवीएम 32 बिट" का चयन करना था। मेरी परियोजनाएं तब इस किट का उपयोग कर cl.exe के बजाय clang-cl.exe के साथ बनाती हैं।

+0

क्या यह केवल 32 बिट, MSVC2015 इंस्टॉलेशन के लिए काम करता है? मैं एक एमएसवीसी2017 64 बिट पर्यावरण में क्लैंग स्थापित करने की कोशिश कर रहा हूं और भले ही मैं पीएटीएच में एमएसवीसी2017 उपकरण के साथ एक खोल चला रहा हूं (यानी cl.exe काम करता है) क्लैंग को मूल अनुप्रयोगों को संकलित करने के लिए मानक लाइब्रेरी नहीं मिलती है। – pwuertz

+0

मैं केवल पुष्टि कर सकता हूं कि यह MSVC2015 32 और 64 बिट के साथ काम करता है, जब मैं पर्यावरण में कुछ भी बदले बिना क्यूटी निर्माता से सबकुछ चलाता हूं। क्या आप "बिल्ड और रन" -> compilers-> autodetected में LLVM टूलचेन देखते/उपयोग करते हैं? एक खोल में निर्माण करते समय, कुछ अतिरिक्त क्लैंग पथ आवश्यक हो सकते हैं? शायद एमएसवीसी2015 बिल्ड टूल्स को स्थापित करने का विकल्प हो सकता है, हालांकि मुझे लगता है कि 2015 और 2017 के बाद से यह आवश्यक नहीं होना चाहिए एबीआई-संगत। – FourtyTwo

+0

मुझे लगता है कि एमएसवीसी2017 के लिए क्लैंग (अब एलएलवीएम 6) में कोई ऑटोडेक्शन समर्थन नहीं है, लेकिन मैंने एमएसवीसी2017 के लिए सभी शामिल और lib झंडे को परिभाषित करके कमांड लाइन के माध्यम से संकलित/लिंक करने का प्रबंधन किया था। फिर क्यूटी है: पीएटीएच में एलएलवीएम के साथ भी क्यूटी क्रिएटर और न ही क्यूबीएस ऑटोडेटक्ट क्लैंग। सफल एमएसवीसी एकीकरण या दृश्यों के पीछे कुछ अन्य तर्कों के कारण आपके ऑटोडेक्टेड क्लैंग को शायद क्यूटी द्वारा पता चला है। – pwuertz

संबंधित मुद्दे