GNU Make םע חותפ דוקב הנכות חותיפב Makile יצבק םע הרצק תורכיה


GNU Make ה תנכותב שמתשהל ןתינ .דוקה סיסבב הלא תולועפ עוציבל תודוקפ קיפנהל לוכיו שדחמ היצליפמוק עצבל שיש םיוסמ דוק סיסב לש םיקלחה תא עבוקה חותיפ ילכ אוה make תודוקפ תקפנה ידי לע

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

Makefile ןכות

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

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

    target ... : prerequisites ... 
    	recipe 
    ... 
    ...

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

    םדקומ יאנת דעיה יצבק תריציל טלקכ שמשמה ץבוק אוה.

    ןוכתמ ש הלועפה אוה עצבמ ה ךותב ןוכתמ לכ ינפל תינושל ות םישל שי .םימדקומה םיאנתה ךמס לע דעיה ץבוק תריציל תעצבמ םיצבק הנתשמה תא ןייצנ םא אלא '. RECIPEPREF

    final: main.o end.o inter.o start.o
    	gcc -o final main.o end.o inter.o start.o
    main.o: main.c global.h
    	gcc -c main.c
    end.o: end.c local.h global.h
    	gcc -c end.c
    inter.o: inter.c global.h
    	gcc -c inter.c
    start.o: start.c global.h
    	gcc -c start.c
    clean:
    	rm -f main.o end.o inter.o start.o

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

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

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

    .ונממ םישדח טקייבואה יצבקמ דחא םא וא ,םייק וניא יפוס ץבוקה םא תאז תושעל שי .אל וא final שדחמ רשקל םא טילחמ make ,םישורדה טקייבואה יצבק לש שדחמ רודיה רחאל

    . יפוס רושיק זאו -ו inter.o טקייבואה ץבוק ןוכדעל רוקמה ץבוק תא שדחמ ביכרי אוה make תלעפהב זא inter.c ץבוקה תא הנשנ םא ,ךכיפל

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

    final: main.o end.o inter.o start.o
    	gcc -o final main.o end.o inter.o start.o

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

    OBJ = main.o end.o inter.o start.o
    final: $(OBJ)
    	gcc -o final $(OBJ)
    main.o: main.c global.h
    	gcc -c main.c
    end.o: end.c local.h global.h
    	gcc -c end.c
    inter.o: inter.c global.h
    	gcc -c inter.c
    start.o: start.c global.h
    	gcc -c start.c
    clean:
    	rm -f $(OBJ)

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

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

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

    .PHONY: clean
    clean:
    	rm -f $(OBJ)

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


כל הזכויות שמורות. © Linux-Console.net • 2019-2024