מערכות אוסף. מעבר לתצורה פשוטה, צור, בצע התקנה

כולנו או כמעט כולם (ואם אין לכם מזל) נאלצנו להרכיב תוכנית מקוד המקור. למעשה, ברוב הפרויקטים זה מספיק לבצע ./configure && make && לבצע התקנה כדי להתקין את התוכנית, אך אנו הולכים לראות את החלופות השונות:

GNU Make

GNU Make היא מערכת קומפילציה ברמה נמוכה, מעט דברים מוגדרים ולא מבוצעות בדיקות:

יתרונות:

  • נפוצה מאוד
  • פשוט להבנה
  • מהר

חסרונות:

  • לא ניתן להגדרה
  • קשה לתחזק
  • לא מבצע בדיקות

make

BSD Make

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

יתרונות:

  • מהר
  • פשוט להבנה
  • יותר תכונות מאשר GNU Make

חסרונות:

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

make

אוטוטולים

אוטומוטולים הם מערכת ה- GNU הרשמית ויוצרת סקריפט בשם configure שעלינו להתקשר כדי ליצור את ה- Makefile המתאים מ- GNU Make. היא מופצת באופן נרחב, עם זאת, יותר ויותר אנשים (כולל אני) חושבים שזה מסורבל מדי, קשה, איטי ולא תואם במיוחד.

יתרונות:

  • ניתן להגדרה גבוהה
  • נפוצה מאוד

חסרונות:

  • ניידות נמוכה בין מערכות שאינן UNIX
  • בצע יותר מדי בדיקות (בדוק הכל, והכל הכל)
  • איטי מאוד בעת ההגדרה
  • תאימות לקויה לאחור

./configure && make

CMake

(המערכת המועדפת עלי) CMake היא מערכת שבאה לפצות על החסרונות של Autotools בהיבטים רבים, כמו למשל תאימות לאחור וניידות שלה. כמו כן, שיפור מערכת הבדיקה הניתנת להגדרה גבוהה לצרכי כל פרויקט. האמת היא שיותר ויותר פרויקטים משתמשים ב- CMake כמו KDE, PortAudio, Ogre3D וכו '. אנו יכולים לזהות מערכות מסוג זה הודות לקובץ CMakeLists.txt שייצור Makefile או פרויקט עבור Eclipse או CodeBlocks

יתרונות:

  • מהר
  • תמיכה נהדרת בין פלטפורמות
  • אתה יכול להגדיר את הבדיקות בצורה מאוד ניתנת להתאמה אישית

חסרונות:

  • קשה להבין בהתחלה
  • אתה צריך לעבוד עם הפשטה שיכולה להיות מפחידה בהתחלה
  • מעט התפשטות אם כי לאט לאט הוא גדל

cmake . && make

ש עשה

QMake היא מערכת שתוכננה על ידי Trolltech ללקט פרויקטים תוצרת Qt. באופן זה qmake שם דגש רב על Qt והוא בדרך כלל הפורמט המשמש IDEs כמו QtCreator. זה די פופולרי בפרויקטים של Qt אבל הוא לא נמצא מחוץ לסביבה זו:

יתרונות:

  • משולב היטב עם Qt
  • מהר
  • ריבוי טוב בתוך Qt

חסרונות:

  • לא שכיח מחוץ לאפליקציות Qt

qmake . && make

SCons

SCons היא מערכת מבוססת פיתון להרכבת פרויקטים של C / C ++. בשונה מאוטוטולים, CMake או QMake; SCons לא בונה Makefile. ניתן לשנות את SCons אך הוא אולי האיטי ביותר בפעולות פשוטות
יתרונות:

  • שינוי קל
  • גש למבחנים ההוגנים

חסרונות:

  • התפשטות מועטה
  • איטי

scons

בוסט ג'אם

Boost.Jam היא גרסה של Perforce Jam המשמשת בספריות C ++ Boost הפופולריות, אם כי ניתן להשתמש בנפרד במערכת האוסף. בניגוד ל- GNU Make, Boost.Jam משתמש ב- Jamfiles, שהם גרסה משופרת של Makefiles. הם פופולריים למדי בסביבת BeOS / Zeta / Haiku.

יתרונות:

  • מהר
  • הכי קצר לכתוב

חסרונות:

  • התפשטות מועטה
  • קושי בביצוע מבחנים

bjam

Ninja

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

יתרונות:

  • מייקל ראפידו

חסרונות:

  • אתה צריך מערכת אחרת כדי להוליד את נינג'ה
  • התפשטות מועטה

ninja

אחר

אתה יכול להשתמש בכל מערכת אחרת כגון סקריפט בסיסי או פיתון משלך. ישנם גם גנרטורים לשפות אחרות שאינן מקומיות, בהן ניתן להשתמש כמו Gradle, Maven, gyp וכו '.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   אבימלמרטל דיג'ו

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

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

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

    ברכות!

    1.    אדריאן ארויו סטריט דיג'ו

      תודה על התגובה!
      לדעתי ה- GNU make תמיד היה יותר מסורתי ונאמן לתוכנית ה- make המקורית ו- BSD make תמיד היו חדשניים יותר אבל יכול להיות ששמתי לב לדברים אחרים בעת ביצוע ההשוואה.

      אוטומוטולים הם באמת כאב ראש גדול. כתורם למערכת ההפעלה הייקו נאלצתי להעביר תוכנה עם אוטוטולים וזה גיהינום. יש מעט מקרים שבסופו של דבר יצרתי את ה- Makefile או את ה- CMakeLists.txt לפני תיקון הבלגן הזה.

  2.   צ'אק דניאלס דיג'ו

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

  3.   עצמות דיג'ו

    'make check' משמש לבדיקת האוסף לאחר השימוש ב- make
    ברכות