Windows ו- Linux הן שתי מערכות שונות מאוד, וככזה, לעתים קרובות זה לא קל תוכניות הנמל שנכתבו עבור אחד לשני, במיוחד כאשר עוסקים תוכניות GUI. אמנם יש הרבה פלטפורמות שונות חוצה פלטפורמות SDKs, תוכניות דובר שנכתב ללא ניידות בראש הם די קשה לנמל.

כשמדובר להרכיב ולהפעיל תוכניות שנכתבו עבור לינוקס ב- Windows, יש פתרון המכונה Cygwin. הפרויקט של Cygwin הוא אוסף של הכלים והמהדרים הנפוצים ביותר (כולל פגז הבש ורשת המהדר של גנו) עבור Windows. זה כולל גם ספריה המספקת שכבת תאימות, כך שניתן לקרוא תוכניות אשר קוראים לינוקס ספציפיים APIs. Cygwin הוא לא אמולטור או מכונה וירטואלית, והוא אינו מאפשר קבצים בינאריים של לינוקס לרוץ על Windows מבלי להיות מחדש מלוקט.

בקר בדף ההתקנה של Cygwin והורד את תוכנית ההתקנה של 32 סיביות או 64 סיביות (בהתאם לגירסת Windows שבה אתה משתמש). הפעל את תוכנית ההתקנה. לחץ על הבא ולאחר מכן שוב (כדי "התקן מהאינטרנט"). ספריית ברירת המחדל היא "C: \ cygwin". זה יכול להיות שונה אם יש צורך, אבל אם אין לך סיבה ספציפית לשנות את זה, ברירת המחדל היא הטובה ביותר. לחץ על הבא, הבא ולאחר מכן שוב.

הפרויקט Cygwin יש אתרי המראה בכל רחבי העולם; בחר אחד שלדעתך ישרת את המיקום שלך בצורה הטובה ביותר ולחץ על הבא. עכשיו אתה צריך לבחור אילו חבילות להתקין. כדי לקמפל תוכניות לינוקס פשוטות ב- Windows, תזדקק ל- GNU Compiler Chain (GCC) המספק מהדר C ו- C + +.

הקלד "gcc" בתיבת החיפוש ולאחר מכן לחץ על סימן החיבור הקטן לצד "Devel" ברשימת החבילות. מצא "gcc-core" ו "gcc-g + +" ולחץ על "דלג" עבור כל אחד. המילה "Skip" תשתנה למספר גירסה, והסימן "n / a" בעמודה "bin?" יהפוך לתיבה מסומנת. הקלד "Make" בתיבת החיפוש ומצא "make" תחת "Devel". לחץ על "דלג" כדי לסמן אותו להתקנה. חפש "wget" וגם לסמן אותו להתקנה מ "אינטרנט." כדי לבנות את הדוגמה הבאה, אנחנו גם צריכים "libiconv;" לחפש אותו ולסמן אותו להתקנה.

הקש "הבא. המתקין יראה מה חבילות אחרות צריך להיות מותקן כדי לפתור את כל התלות. לחץ על הבא כדי לקבל את ההמלצות.

לאחר הורדת כל החבילות והתקנתן, בצע את השלבים האחרונים עד שההתקנה יוצאת. התחל את "מסוף Cygwin" להיכנס לסביבת הפיתוח דמוי לינוקס. בטרמינל אתה לא משתמש בפקודות Windows כמו "dir" אלא פקודות פגז כמו "ls".

כדי להדגים כיצד לקמפל תוכנית לינוקס תחת Windows, נשתמש בחבילה HTML-XML מ W3. לקבלת מבט על מה הוא יכול לעשות, לראות כיצד לתפעל 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". הזן את הספריה:

 cd html-xml-utils-6.7 

לפני הקבצים ניתן לבנות, אתה צריך להפעיל את "config" סקריפט פגז כדי ליצור את Makefile (הוראות לבנות) אשר מתאימים לסביבה זו לבנות. זהו צעד נפוץ על לינוקס (ו Cygwin) בעת בניית חבילות מן המקור.

 ./configure 

לאחר "הגדרת" סיים, אתה יכול להתחיל לבנות באמצעות "לעשות":

 עשה 

הבנייה תיכשל דרך חלקית. הייתי במוחי שני מה לעשות הלאה. או שאני יכול לעבור לפרויקט אחר ולבנות את זה ממקור או קרב עם HTML-XML-utils. בחרתי את זה האחרון כפי שהוא מראה כי לא הכל יהיה הליכה- in-the-Park כאשר מנסים לקמפל לינוקס תחת תוכניות Cygwin. הפתרון לבעיה זו היא פשוטה. הודעת השגיאה מראה שהקשר אינו מצליח למצוא את הספריה "iconv". מבט מהיר על פקודת הקישור מראה שהספרייה לא צוינה. הפתרון המהיר והמלוכלך הוא להריץ את הפקודה באופן ידני ולומר למקשר להשתמש ב- libconv. הדרך "ראוי" לתקן את זה יהיה להתחיל להתעמק לתוך Makefile וכו 'כדי לגלות מדוע זה לא עובד.

הפעל את הפקודה הבאה, וציין את הכללת "-liconv" בסוף:

 gcc -g -O2-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 כותרות . de.o. fopencookie.o -liconv 

לאחר הקובץ "hxindex.exe" בנוי, אתה יכול להמשיך עם שאר לבנות על ידי הקלדת "לעשות" שוב. הדרך "לעשות" עובד זה בודק מה יש ולא נבנה, ולאחר מכן הוא ממשיך את תהליך הבנייה בנקודה המתאימה. מאז יש לנו באופן ידני בנוי "hxindex.exe", "לעשות" רק ממשיך עם הבא בינארי ברשימה שלה.

כאשר "השלמת" משלים, יהיו לך את כל קבצי exe בספריה html-xml-utils-6.7.

אם אתה תקוע באמצעות Cygwin אתה צריך להסתכל על השאלות הנפוצות, וכן בתיעוד. אם לא, בפרויקט יש רשימות של רשימות דיוור. אם אתה נתקל בבעיות עם השלבים המתוארים למעלה, השתמש בקטע ההערות שבהמשך.