יצירה והרצה של קובץ '.a' של לינוקס

Yzyrh Whrzh Sl Qwbz A Sl Lynwqs



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

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

מהו קובץ '.a' בלינוקס?

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







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



דרישות קדם:

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



  • אובונטו 20.04 או כל גרסה עדכנית
  • גישה לשורת פקודה או לחלון מסוף
  • חשבון משתמש, במיוחד הרשאות sudo, עבור קבצים וספריות שונות

כיצד יוצרים ומריצים קובץ '.a' של לינוקס?

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





אתה צריך מהדר GCC כדי להפעיל ולהפעיל את הדוגמה הבאה. המהדר משמש להפעלת כל הפקודות כדי ליצור ולהפעיל את קובץ Linux '.a':



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

שלב 1: הידור קובץ מקור C

התחל את העבודה על ידי יצירת קובץ מקור של C באמצעות מהדר GCC כדי להדר את קובצי המקור C (.c) לקבצי אובייקט (.o) עם הפקודה הבאה:

$ gcc -קִיר * .c

הדגל '-Wall' מאפשר את כל האזהרות והדגל '-c' אומר ל-GCC רק להדר, לא לקשר, בשלב זה.

שלב 2: צור את ארכיון הספרייה

השלב הבא הוא יצירת קובץ הספרייה. הפקודה 'ar' יוצרת את ארכיון הספרייה הסטטי (.a) מקבצי האובייקט. לפיכך, אנו משתמשים בפקודה הבאה:

$ עם -cvq libfile.a * .O

פקודה זו יוצרת קובץ ארכיון סטטי בשם 'libfile.a' על ידי שילוב של קבצי אובייקט שונים בעלי סיומת '.o' באמצעות הפקודה 'ar' (ארכיון) במערכות ההפעלה לינוקס. לפקודה הזו יש שלושה דברים שצריך לשים לב אליהם: 'c', 'v' ו-'q'. בואו נפרק את הרכיבים ונבין את המטרה של כל דגל וטיעון בהקשר של פקודה זו:

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

-c: דגל זה מורה ליצור ארכיון חדש אם הוא עדיין לא נוצר או עדיין לא קיים. אם קיים קובץ ארכיון בשם נתון, הדגל '-c' מבטיח שהוא נוצר מחדש, ומחליף כל תוכן קודם.

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

-q: ה-'q' מייצג 'quickly append'. הוא מבקש מדגל 'ar' לצרף מייד את הקבצים שצוינו לארכיון מבלי לבדוק אם יש סמלים כפולים או פעולות שגוזלות זמן.

libfile.a: שם הקובץ נדרש עבור הפקודה שתיווצר או תשתנה. כאן, אנו נותנים שם קובץ בתור 'libfile' עם הסיומת '.a' המציינת שזהו קובץ ארכיון סטטי של ספרייה.

*.o: ה-'*' בסוף הפקודה מייצג כל קובץ בספרייה שנבחרה עם סיומת '.o' המתייחסת לקבצי האובייקט. קובצי אובייקט הם תוצאות של הידור קוד מקור ומכילים קוד מכונה שעדיין לא מקושר לקובץ הפעלה סופי כלשהו.

שלב 3: צפייה בתוכן הספרייה

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

$ עם libfile.a

הפקודה 'ar -t libfile.a' מפרטת את כל קבצי האובייקטים הכלולים בקובץ ארכיון הספרייה הסטטי בשם 'libfile.a' באמצעות הפקודה 'ar' במערכת הפעלה לינוקס. בואו ננתח כל דגל ואת הפונקציונליות שלו:

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

-t: הדגל '-t' משמש להצגת תוכן העניינים של הארכיון, המציג את שמות קבצי האובייקט המאוחסנים בתוך 'libfile.a.'

libfile.a: כדי לקרוא את הנתונים, עלינו לדעת את שם קובץ הארכיון.

שלב 4: שימוש בספרייה בתוכנית אחרת

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

$ gcc -או MyProgramMain.c נָתִיב / ל / ליב הוא -קובץ

בפקודה זו, '-L' מציין את נתיב הספרייה, '-lfile' מקשר אל הקובץ 'library.a', תוך הסרת הקידומת 'lib' והסיומת '.a'.

שלב 5: הפעל קובץ '.a' לינוקס

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

$ . / MyProgramMain

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

סיכום

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