לדלג לתוכן

תרגול מהמקור לקובץ אובייקט

בנו את הדוגמה בשלבים ושמרו את math.i, את פלט האסמבלי ואת פלט הסמלים וה־relocations. סמנו הפניה אחת בקובץ הלקוח ואת הסמל שמספק לה מימוש.

צרו שלושה כשלים נפרדים: השמטת math.obj מהקישור, שינוי חתימת המימוש ל־long, והגדרת אותה פונקציה לא־inline בשני קבצים. לכל כשל כתבו איזה שלב מזהה אותו ומה המידע שחסר או סותר.

בנו עם SCALE=1 ועם SCALE=4, בלי לשנות את המקור. שמרו את פקודות הבנייה המדויקות ואת התוצאה. הסבירו מדוע hash של קובצי המקור בלבד אינו מזהה את שני התוצרים.

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