די GNU מאכט ספר - Demystifying Linux Build Automation

ווי געזונט ווי שרייַבן וועגן לינוקס און שרייבן באריכטן און טוטאָריאַלז וועגן דיסטריביושאַנז און מכשירים איך בין אויך באטייטיק ינוואַלווד אין סאָפטווער אַנטוויקלונג. צום באַדויערן, 99.9% פון אַז ווייכווארג אַנטוויקלונג נעמט אָרט אויף די פֿענצטער פּלאַטפאָרמע.

איך האָבן איבער 20 יאר דערפאַרונג ווי אַ C ++, וויסואַל באַסיק, VB.NET, און C # דעוועלאָפּער און איך בין אויך אַ דאַב האַנט מיט סקל סערווירער ביידע ווי אַ דבאַ און אַ דעוועלאָפּער.

וואָס איך בין נישט אַזוי גוט בייַ דעוועלאָפּינג ווייכווארג פֿאַר לינוקס. עס איז נאָר עפּעס איך האָבן קיינמאָל טאַקע באַדערד מיט. די הויפּט סיבה איז אַז נאָך דעוועלאָפּינג ווייכווארג בעשאַס דעם טאָג די לעצטע זאַך איך ווילן צו טאָן איז זיצן אַרום אַ אָוונט שרייבן מער ווייכווארג.

איך טאָן דאָך ווי טינקערינג מיט סקריפּטינג און שרייבן די מאָדנע קליין פּראָגראַם. דאס זענען יוזשאַוואַלי פֿאַר עלעקטראָניק באזירט פראיעקטן אויף די ראַספּבעררי פּי .

איין זאַך אַז פילע דעוועלאָפּערס אויף די ווינדאָוז פּלאַטפאָרמע וועט האָבן קאָנפליקט מיט ווען זיי ערשטער גיין איבער צו לינוקס איז וויסן וועגן די מכשירים פארלאנגט צו בויען און פּעקל אַפּלאַקיישאַנז.

ביי ווייַט די יזיאַסט טיפּ פון אַפּלאַקיישאַן צו אַנטוויקלען זענען וועב פּראָגראַמען ווייַל בכלל זיי טאָן ניט דאַרפן צונויפגעשטעלט קאָד (פפּ, פּערל, פּיטהאָן) און די טעקעס זענען דיפּלויד צו אַ שטעלן פּלאַץ אויף די וועב סערווער.

א גרויס נומער פון פּראָגראַמען געבויט פֿאַר לינוקס זענען דעוועלאָפּעד ניצן C, C + + אָדער פּיטהאָן. קאָמפּילינג אַ איין C פּראָגראַם איז לעפיערעך גרינג, אָבער ווען איר דאַרפֿן צו זאַמלען אַ נומער פון C מגילה מיט קייפל דיפּענדאַנסיז, די זאכן באַקומען אַ ביסל מער טריקי.

גנו מאכט איז אַ בויען אָטאַמיישאַן סקריפּטינג געצייַג וואָס העלפט איר קאַמפּייל דיין אַפּלאַקיישאַנז ווידער און ווידער און אין פאַרשידענע וועגן. פֿאַר בייַשפּיל, איר קענען צושטעלן אַ פּאַראַמעטער וואָס דיפּענדינג אויף די ווערט וועט זאַמלען אַ אַפּלאַקיישאַן ניצן 64-ביסל אָדער 32-ביסל.

די GNU מאַכן בוך איז געשריבן דורך יוחנן גראַם-קוממינג צו העלפן ניצערס פון GNU מאַכן אַ פערמער קאַפּ פון קאָמפּלעקסאַטיז פארבונדן מיט GNU Make.

דער בוך איז שפּאַלטן אין זעקס קאפיטלען:

  1. די באַסיקס רעוויסיטעד
  2. Makefile Debugging
  3. בילדינג און רעבוילדינג
  4. פּיטפאַללס און פּראָבלעמס
  5. פּושינג די קאָנווערט
  6. די GNU מאַכן סטאַנדאַרד ביבליאָטעק

איך טאָן ניט גלויבן אַז דער בוך איז טאַקע אַימעד בייַ ביגינערז ווייַל עס לאַקס זיכער קלעריפיקיישאַנז אַז איר וואָלט דערוואַרטן ווען לערנען אַ נייַ טעמע אַזאַ ווי "וואָס איז גנו מאַכן?", "וויאַזוי איך מאַכן אַ מאַכן טעקע?", "פארוואס איז ניצן מאַכט בעסער ווי קאַמפּיילינג יעדער פּראָגראַם איינער דורך איינער? " און "וויאַזוי איך באַגרענעצן מגילה ניצן GNU מאַכן?". אַלע פון ​​די ונטערטעניק געביטן זענען באדעקט אין די גנו מאַכן מאַנואַל .

דער פאַקט אַז דער ערשטער קאַפּיטל איז גערופן "די באַסיקס רעוויסיטעד" ווי קעגן צו "די באַסיקס" קלאר ווייזט אַז איר זענט דערוואַרט צו האָבן אַ גראַונדינג אין די ונטערטעניק ענין איידער איר אָנהייבן.

דער ערשטער קאַפּיטל קאָווערס אַלע די באַסיקס אַזאַ ווי די נוצן פון וועריאַבאַלז, ינווייראַנמאַנץ געניצט דורך קאַמאַנדז און די $ (שעל) סוויווע. ווי דער קאַפּיטל באוועגט אויף איר באַקומען אין די ונטערטעניק פון פאַרגלייַך, רשימות, און באַניצער דיפיינד פאַנגקשאַנז.

אויב איר האָט געניצט גנו מאַכן פֿאַר אַ ביסל בשעת אָבער טאָן ניט נאָך באַטראַכטן זיך אַ מומחה עס זענען עטלעכע פייַן הינץ און עצות וואָס וועט העלפן איר פֿאַרשטיין זיכער ינטראַקאַסיז אַז קען נישט זיין מיד קלאָר.

די צווייטע קאַפּיטל וועט זיין אַ גאַדסענד פֿאַר יענע פון ​​איר וואס האָבן שוין טרייפּ ערראָרס אין בויען סקריפּס. די "Makefile Debugging" אָפּטיילונג איז פול פון ויסגעצייכנט הינץ און עצות פֿאַר דיבאַגינג מאַקעפילעס און כולל סעקשאַנז אויף דרוקן בייַטעוודיק וואַלועס און אפילו דאַמפּינג די ווערט פון יעדער בייַטעוודיק. ווייַטער אין די קאַפּיטל, עס איז אַ וועגווייַזער צו די GNU דעבוגגער וואָס איר קענען נוצן דורך שריט דורך סקריפּס.

די דריט קאַפּיטל כולל בייַשפּיל מאַכןפילעס אָבער מער ווי וואָס ווייזט איר ווי צו מאַכן מאַקעפילעס אַז איר קענען לויפן ווידער און ווידער.

"פּיטפאַללס און פּראָבלעמס" קוקט בייַ די דיפעראַנסיז צווישן זיכער טערמינען אַזאַ ווי = און: =, און יפדעפף און? =.

איך געפונען ווי איך געגאנגען ווייַטער דורך דעם בוך אַז ווייַל איך בין נישט אַקטיוולי טריינג צו נוצן גנו מאַכן און ווייַל מיין וויסן איז אין אַ זייער יקערדיק מדרגה עטלעכע פון ​​די ונטערטעניק געגאנגען זייער פיל איבער מיין קאָפּ.

פון די צייַט איך גאַט צו די "פּושינג די ענוואַלאָופּ" קאַפּיטל מיין אויגן גלייזד איבער עפּעס.

מיין הויפּט קיצער, אויב איך געהאט צו פאָרן דאָס בוך, איז אַז דער מחבר קלאר ווייסט זיין שטאָפּן און געפרוווט צו פאָרן ווי פיל אינפֿאָרמאַציע ווי מעגלעך.

די פּראָבלעם איז אַז מאל ווען אַ ונטערטעניק מומחה פרוווט צו שרייַבן עפּעס אַראָפּ זיי האָבן דעם "טאַקע זייַן גרינג, אַלע איר האָבן צו טאָן איז ...." אָראַ וועגן זיי.

די גומע פּלאָמבע אויף מיין צוריק טיר איז אַוועק די לעצטע וואָך און ווי עס איז נאָר אַ פּאָר פון יאָר אַלט איך גערופן די פירמע אַז פיטאַד עס ווי עס איז נאָך אין וואָראַנטי.

די דאַמע אויף די טעלעפאָנירן האט געזאגט, "טאַקע וואָס איז גוט, איך וועט שיקן איר אַ נייַ פּלאָמבע אויס".

איך האָב געזאָגט "טאַקע טאָן איך האָבן עס צו טאָן?"

דער ענטפער איז געווען "זיכער איר קענען, אַלע איר האָבן צו טאָן איז נעמען אַוועק די טיר, פּאַסיק די פּלאָמבע און שטעלן די טיר צוריק אויף".

איצט מיין רעגע געדאַנק איז "וואָאַה, ריוויינד אַ ביסל דאָרט. נעמען אַוועק די טיר?!?". איך בין נישט קוואַלאַפייד צו באַזייַטיקן אַ טיר, פּאַסיק אַ פּלאָמבע און ריפּיטיד די טיר. איך פאַרלאָזן אַז צו די עקספּערץ.

מיט דעם בוך, איך פילן אַז איר דאַרפֿן אן אנדער בוך און אַ געוויסע סכום פון דערפאַרונג שרייבט מאַקעפילעס פֿאַר איר וואָלט געפינען עס נוצלעך.

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

מייַן אָפּשאַצונג איז דעריבער אַז איר זאָל קויפן דעם בוך אויב איר זוכט פֿאַר קלעראַפאַקיישאַן אָדער מער ינטערמידייט צו אַוואַנסירטע וויסן אויף GNU Make אָבער עס איז נישט אַ בוך פֿאַר ביגינערז.