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

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

सिगविन इंस्टॉलेशन पेज पर जाएं और 32-बिट या 64-बिट सेटअप निष्पादन योग्य डाउनलोड करें (आप जिस विंडोज़ का उपयोग कर रहे हैं उसके आधार पर)। सेटअप प्रोग्राम निष्पादित करें। अगला और अगला क्लिक करें ("इंटरनेट से इंस्टॉल करें") पर। डिफ़ॉल्ट निर्देशिका "सी: \ cygwin" है। यदि आवश्यक हो तो इसे बदला जा सकता है, लेकिन जब तक आपके पास इसे बदलने का कोई विशिष्ट कारण न हो, तो डिफ़ॉल्ट सबसे अच्छा होता है। अगला, अगला और अगला क्लिक करें।

सिगविन परियोजना में पूरी दुनिया में दर्पण साइटें हैं; एक ऐसा चुनें जो आपको लगता है कि आपके स्थान की सबसे अच्छी सेवा करेगा और अगला क्लिक करें। अब आपको चुनने के लिए कौन से पैकेज चुनने होंगे। विंडोज़ में सरल लिनक्स प्रोग्राम संकलित करने के लिए, आपको जीएनयू कंपाइलर चेन (जीसीसी) की आवश्यकता होगी जो सी और सी ++ कंपाइलर प्रदान करे।

खोज बॉक्स में "gcc" टाइप करें और फिर संकुल की सूची में "Devel" के बगल में छोटे प्लस चिह्न पर क्लिक करें। "Gcc-core" और "gcc-g ++" ढूंढें और प्रत्येक के लिए "छोड़ें" पर क्लिक करें। "छोड़ें" शब्द एक संस्करण संख्या में बदल जाएगा और "बिन?" कॉलम में "n / a" चिह्न चेक बॉक्स में बदल जाएगा। खोज बॉक्स में "मेक" टाइप करें और "डेवेल" के अंतर्गत "मेक" ढूंढें। इंस्टॉल करने के लिए इसे चिह्नित करने के लिए "छोड़ें" पर क्लिक करें। "Wget" के लिए खोजें और इसे "वेब" से इंस्टॉल करने के लिए भी चिह्नित करें। नीचे दिए गए उदाहरण को बनाने के लिए, हमें इसके लिए "libiconv;" खोज की आवश्यकता होगी और इसे इंस्टॉल करने के लिए चिह्नित करें।

अगला पर क्लिक करें। इंस्टॉलर तब देखेगा कि किसी भी निर्भरता को हल करने के लिए अन्य पैकेजों को स्थापित करने की आवश्यकता है। सिफारिशों को स्वीकार करने के लिए अगला क्लिक करें।

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

विंडोज के तहत एक लिनक्स प्रोग्राम को संकलित करने का तरीका दिखाने के लिए, हम डब्ल्यू 3 से एचटीएमएल-एक्सएमएल पैकेज का उपयोग करेंगे। यह देखने के लिए कि यह क्या कर सकता है, कमांड लाइन से HTML और XML फ़ाइलों को कैसे प्रबंधित करें देखें।

"Wget" का उपयोग कर स्रोत फ़ाइलों को डाउनलोड करें:

 wget http://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-6.7.tar.gz 

अब संग्रह फ़ाइल को अनपैक करें:

 tar -zxf html-xml-utils-6.7.tar.gz 

स्रोत फ़ाइलें अब "html-xml-utils-6.7" निर्देशिका में हैं। उस निर्देशिका को दर्ज करें:

 सीडी एचटीएमएल-एक्सएमएल-यूटिल -6.7 

फ़ाइलों को बनाया जाने से पहले, आपको मेकफ़ाइल (बिल्ड निर्देश) उत्पन्न करने के लिए "कॉन्फ़िगर" शेल स्क्रिप्ट चलाने की आवश्यकता है जो इस बिल्ड वातावरण के लिए उपयुक्त हैं। स्रोत से संकुल बनाते समय यह लिनक्स (और सिगविन) पर एक आम कदम है।

 कॉन्फ़िगर 

एक बार "कॉन्फ़िगर" समाप्त हो जाने के बाद, आप "मेक" का उपयोग कर निर्माण शुरू कर सकते हैं:

 बनाना 

निर्माण के माध्यम से हिस्सा विफल हो जाएगा। मैं आगे क्या करना है इसके बारे में दो दिमाग में था। या तो मैं किसी अन्य प्रोजेक्ट पर स्विच कर सकता हूं और इसे HTML या XML-utils के साथ अपने स्रोत या युद्ध से बना सकता हूं। मैंने उत्तरार्द्ध का चयन किया क्योंकि यह दिखाता है कि साइगविन के तहत लिनक्स कार्यक्रमों को संकलित करने का प्रयास करते समय सबकुछ चलने वाला नहीं होगा। इस विशेष समस्या का समाधान सरल है। त्रुटि संदेश दिखाता है कि लिंकर "iconv" लाइब्रेरी नहीं ढूंढ पा रहा है। लिंक कमांड पर एक त्वरित रूप से पता चलता है कि पुस्तकालय निर्दिष्ट नहीं है। त्वरित और गंदे समाधान मैन्युअल रूप से कमांड चलाने के लिए है और लिंकर को libconv का उपयोग करने के लिए बताएं। इसे ठीक करने का "उचित" तरीका यह पता लगाने के लिए मेकफ़ाइल इत्यादि में डेलविंग करना शुरू करना होगा कि यह क्यों काम नहीं कर रहा है।

अंत में "-liconv" को शामिल करने पर ध्यान देते हुए निम्न आदेश चलाएं:

 gcc -g -O2 -o hxindex.exe hxindex.o scan.o html.o openurl.o url.o heap.o class.o errexit.o connectsock.o types.o tree.o genid.o dtd.o शीर्षलेख .o dict.o fopencookie.o -liconv 

एक बार "hxindex.exe" फ़ाइल बनने के बाद, आप फिर से "मेक" टाइप करके बाकी के निर्माण के साथ जारी रख सकते हैं। "मेक" काम करने का तरीका यह है कि यह जांचता है कि क्या बनाया गया है और नहीं बनाया गया है, और फिर यह उपयुक्त बिंदु पर निर्माण प्रक्रिया जारी रखता है। चूंकि हमने मैन्युअल रूप से "hxindex.exe" बनाया है, "मेक" बस अपनी सूची में अगली बाइनरी के साथ चलता है।

जब "मेक" पूरा हो जाता है, तो आपके पास html-xml-utils-6.7 निर्देशिका में सभी .exe फ़ाइलें होंगी।

यदि आप सिगविन का उपयोग करके अटक जाते हैं तो आपको एफएक्यू और दस्तावेज़ीकरण पर देखना चाहिए। विफल होने पर, परियोजना में मेलिंग सूचियों का एक सेट है। यदि ऊपर वर्णित चरणों के साथ आपको कोई समस्या है, तो कृपया नीचे टिप्पणी अनुभाग का उपयोग करें।