मैं लिनक्स x86_64 होस्ट मशीन का उपयोग करके Windows x86_64 लक्ष्य के लिए Qt पुस्तकालयों (और अंततः मेरे आवेदन) को पार करना चाहता हूं। मुझे लगता है कि मैं करीब हूं, लेकिन मुझे इस प्रक्रिया के कुछ हिस्सों की बुनियादी गलतफहमी हो सकती है।
मैंने अपने फेडोरा मशीन पर सभी win32-g++
मिंगव पैकेज स्थापित करके शुरू किया और फिर अपने वातावरण को फिट करने के लिए qmake.conf फ़ाइल को संशोधित किया । हालाँकि, मुझे लगता है कि Qt: -platform
और के लिए कुछ स्पष्ट रूप से कॉन्फ़िगर किए गए विकल्पों के साथ फंस गए हैं -xplatform
। क्यूटी प्रलेखन कहता है कि -platform
मेजबान मशीन वास्तुकला (जहां आप संकलित कर रहे हैं) -xplatform
होना चाहिए और वह लक्ष्य मंच होना चाहिए जिसके लिए आप तैनात करना चाहते हैं। मेरे मामले में, मैंने सेट किया -platform linux-g++-64
और -xplatform linux-win32-g++
कहां linux-win32-g ++ मेरा संशोधित win32-g ++ कॉन्फ़िगरेशन है।
मेरी समस्या यह है कि इन विकल्पों के साथ कॉन्फ़िगर करने के बाद, मैं देखता हूं कि यह क्रॉस कंपाइलर (x86_64-w64-mingw32-gcc) के बजाय मेरे सिस्टम के संकलक को आमंत्रित करता है। यदि मैं -xplatform
विकल्प को छोड़ देता हूं और -platform
अपने लक्ष्य कल्पना (linux-win32-g ++) पर सेट करता हूं, तो यह क्रॉस कंपाइलर को आमंत्रित करता है, लेकिन तब त्रुटि होती है जब यह पाता है कि कुछ यूनिक्स संबंधित फ़ंक्शन परिभाषित नहीं हैं।
यहाँ मेरे नवीनतम प्रयास से कुछ आउटपुट है: http://pastebin.com/QCpKSNev ।
प्रशन:
जब लिनक्स होस्ट से विंडोज के लिए क्यूटी जैसी कुछ क्रॉस-कंपाइलिंग होती है, तो क्या देशी कंपाइलर को कभी इनवॉइस किया जाना चाहिए ? एक क्रॉस संकलन प्रक्रिया के दौरान, क्या हमें केवल क्रॉस कंपाइलर का उपयोग नहीं करना चाहिए ? जब मैं
-xplatform
विकल्प निर्दिष्ट करता हूं, तो मुझे नहीं दिखता कि क्यूटी की कॉन्फ़िगर स्क्रिप्ट मेरे सिस्टम के मूल संकलक को लागू करने की कोशिश क्यों करती है।अगर मैं mingw क्रॉस-कंपाइलर का उपयोग कर रहा हूं, तो मुझे ऐनक फाइल से कब निपटना होगा? जीसीसी के लिए विशेष फाइलें अभी भी मेरे लिए एक रहस्य की तरह हैं, इसलिए मैं सोच रहा हूं कि क्या यहां कुछ पृष्ठभूमि मेरी मदद करेगी।
सामान्य तौर पर, मेरे qmake.conf में एक क्रॉस कंपाइलर निर्दिष्ट करने से परे, मुझे और क्या विचार करने की आवश्यकता हो सकती है?