Skip to main content

הבנת פיקוד לינוקס ולינוקס: הפוך

הרמטכלים - פרק 3 (יוני 2026)

הרמטכלים - פרק 3 (יוני 2026)
Anonim

המטרה של כלי השירות היא לקבוע באופן אוטומטי אילו חתיכות של תוכנית גדולה צריך להיות recompiled ולהוציא את הפקודות כדי recompile אותם. המדריך מתאר את היישום של גנו, שנכתב על ידי ריצ'רד סטולמן ורולנד מקגראת. דוגמאות אלה מראות תוכניות C מאחר שהן הנפוצות ביותר, אבל אתה יכול להשתמש לעשות עם כל שפת תכנות מהדר שלה ניתן להפעיל עם הפקודה פגז. למעשה, להפוך לא מוגבל לתוכניות. אתה יכול להשתמש בו כדי לתאר כל משימה שבה כמה קבצים חייבים להיות מעודכנים באופן אוטומטי מאחרים בכל פעם אחרים לשנות.

הערה: דף זה הוא תמצית של תיעוד של גנו לעשות . זה מתעדכן רק מדי פעם כי הפרויקט גנו אינו משתמש nroff. לקבלת תיעוד מלא, הנוכחי, עיין בקובץ מידע make.info אשר עשוי מקובץ המקור Texinfo make.texinfo.

תחביר והכנה של כלי השירות

עשה -f makefile אפשרות … יעד …

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

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

השירות Make מבצע פקודות ב- makefile לעדכון שם יעד אחד או יותר, היכן שם היא בדרך כלל תוכנית. אם לא-f אפשרות קיימת, לבצע יחפש את makefilesGNUmakefile, makefile, וMakefile, בסדר הזה.

בדרך כלל אתה צריך לקרוא makefile שלך ​​או makefile או Makefile. (מומלץ להשתמש Makefile כי זה נראה בולט ליד תחילת הרישום במדריך, ממש ליד קבצים חשובים אחרים כגוןתקרא אותי.) השם הראשון שנבדק, GNUmakefile, אינו מומלץ עבור רוב makefiles. אתה צריך להשתמש בשם זה אם יש לך makefile כי הוא ספציפי גנו לעשות ולא יהיה מובן על ידי גרסאות אחרות של לעשות. אם makefile הוא -, הקלט הסטנדרטי נקרא.

ה עשה כלי השירות מעדכן יעד אם הוא תלוי בקבצי תנאים מוקדמים ששונו מאז שהיעד השתנה לאחרונה, או אם היעד אינו קיים.

אפשרויות

ה -b ו -M האפשרויות מתעלמות מהתאימות לגרסאות אחרות של ביצוע.

אדוני ישתנה לספרייה דיר לפני קריאת makefiles או עושה משהו אחר. אם מרובים-C מתוארות כל אחת מהן ביחס לקודמתה:-C/ -C וכו ' שווה ל-C / וכו '. זה משמש בדרך כלל עם recocive invocations לעשות.

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

ה אופציה נותנת משתנים שנלקחו מקדימות הסביבה על פני משתנים מ - makefiles.

ה -f קובץ אופציות קובץ כמו makefile.

ה -אני אפשרות להתעלם מכל השגיאות בפקודות להורג מחדש קבצים.

ה -אני דיר האפשרות מציינת ספריה דיר כדי לחפש makefiles כלל. אם מספר-אני אפשרויות משמשים לציון מספר ספריות, ספריות הם חיפשו בסדר שצוין. שלא כמו טיעונים לדגלים אחרים של לעשות, ספריות שניתן עם-אני הדגלים עשויים להופיע ישירות אחרי הדגל:-אידיר מותר, כמו גם- אני . תחביר זה מותר עבור תאימות עם preprocessor של C-אני דגל.

ה ושינוי עבודות אפשרות לציין את מספר העבודות (פקודות) להפעלה בו זמנית. אם יש יותר מאחד-ג' אפשרות, האחרון הוא יעיל. אם-ג' אפשרות ניתנת ללא ויכוח, לעשות לא יגביל את מספר מקומות עבודה שיכולים לפעול בו זמנית.

ה -k אפשרות ממשיכה ככל האפשר לאחר שגיאה; בעוד שהיעד שנכשל, ואת אלה התלויים בו, לא ניתן לשנות, את התלות האחרת של מטרות אלה ניתן לעבד בכל זאת.

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

ה -n אפשרות זו מדפיסה את הפקודות שיבוצעו, אך אינה מבצעת אותן.

ה קובץ אפשרות לא מחזירה את קובץ גם אם היא מבוגרת יותר מתלותה, ואינה מחזירה שום דבר בעקבות שינויים קובץ . בעיקרו של הקובץ הוא התייחס כמו ישן מאוד ואת הכללים שלה הם התעלם.

ה -p אפשרות מדפיסה את מסד הנתונים (כללים וערכים משתנים) הנובעת מקריאת ה- makefiles. לאחר מכן הוא מבוצע כרגיל או כמפורט אחרת.זה גם מדפיס את פרטי הגירסה שניתנו על ידי-v (ראה להלן). כדי להדפיס את מסד הנתונים מבלי לנסות ליצור מחדש את כל הקבצים, השתמשעשה -p -f / dev / null .

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

ה -r אפשרות מבטלת את השימוש של הכללים המובנים המובנים. גם מנקה את רשימת ברירת המחדל של סיומות עבור כללי הסיומת.

ה - s אפשרות להשתיק את הפעולה. הוא אינו מדפיס את הפקודות בעת ביצוען.

ה -S אופציה מבטלת את ההשפעה של-k אפשרות. זה אף פעם לא הכרחי אלא רקורסיבית לעשות איפה-k עשוי להיות בירושה מן הדף לעשות דרך MAKEFLAGS או אם אתה מגדיר-k ב MAKEFLAGS בסביבה שלך.

ה -t אפשרות נוגע קבצים (מסמן אותם עד כה מבלי לשנות אותם באמת) במקום להפעיל את הפקודות שלהם. זה משמש להעמיד פנים כי הפקודות נעשו, על מנת להטעות בעתיד invocations לעשות.

ה -v האפשרות מדפיסה את הגרסה של התוכנית Make פלוס זכויות יוצרים, רשימה של מחברים, וכן הודעה כי אין אחריות.

ה -W האפשרות מדפיסה הודעה המכילה את ספריית העבודה לפני ואחרי עיבוד אחר. זה עשוי להיות שימושי עבור מעקב אחר שגיאות מתוך קנים מסובכים של רקורסיבית לעשות פקודות.

ה -W קובץ אפשרות מעמיד פנים כי היעד קובץ יש רק שונה. בעת שימוש עם-n דגל, זה מראה לך מה יקרה אם היית לשנות את הקובץ. בלי-n, זה כמעט כמו לרוץלגעת הפקודה על הקובץ הנתון לפני הפעלת, למעט זמן שינוי משתנה רק בדמיון של לעשות.