זהו עותק הפקודה שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
objcopy - העתקה ותרגום של קבצי אובייקט
תַקצִיר
עותק [-F bfdname|--מטרה=bfdname]
[-I bfdname|--input-target=bfdname]
[-O bfdname|--output-target=bfdname]
[-B bfdarch|--בינארי-ארכיטקטורה=bfdarch]
[-S|סטריפ-הכל]
[-g|---strip-debug]
[-K שם סמל|-שמור על סמל =שם סמל]
[-N שם סמל|--strip-symbol=שם סמל]
[--strip-uneeded-symbol=שם סמל]
[-G שם סמל|--keep-global-symbol=שם סמל]
[--localize-hidden]
[-L שם סמל|--localize-symbol=שם סמל]
[--globalize-symbol=שם סמל]
[-W שם סמל|--להחליש-סמל=שם סמל]
[-w|-ווילדקארד]
[-x|--זרוק-הכל]
[-X|--זרוק-מקומיים]
[-b בייט|--byte=בייט]
[-i [רוחב]|--שזירה[=רוחב]]
[--interleave-width=רוחב]
[-j תבנית חתך|--only-section=תבנית חתך]
[-R תבנית חתך|--remove-section=תבנית חתך]
[-p|--שימור-תאריכים]
[-D|--אפשר-דטרמיניסטי-ארכיונים]
[-U|--השבת-דטרמיניסטי-ארכיונים]
[-- איתור באגים]
[--- gap-fill=val]
[--pad-to=כתובת]
[--set-start=val]
[--adjust-start=תוספת]
[--change-addresses=תוספת]
[--שנה-מדור-כתובת תבנית חתך{=,+,-}val]
[--change-section-lma תבנית חתך{=,+,-}val]
[--change-section-vma תבנית חתך{=,+,-}val]
[--שינוי-אזהרות] [--אזהרות ללא שינוי]
[--set-section-flags תבנית חתך=דגלים]
[--add-section שם המדור=שם הקובץ]
[--מקטע-dump שם המדור=שם הקובץ]
[--מדור-עדכון שם המדור=שם הקובץ]
[--שנה שם-סעיף שם ישן=שם חדש[,דגלים]]
[--שמות קטעים ארוכים {enable,disable,keep}]
[--change-leading-char] [--remove-leading-char]
[--reverse-bytes=NUM]
[--srec-len=ival] [--srec-forceS3]
[---refine-sym זקן=חדש]
[--refine-syms=שם הקובץ]
[--לְהַחלִישׁ]
[--keep-symbols=שם הקובץ]
[--strip-symbols=שם הקובץ]
[--strip-unneeded-symbols=שם הקובץ]
[--keep-global-symbols=שם הקובץ]
[--localize-symbols=שם הקובץ]
[--globalize-symbols=שם הקובץ]
[--weaken-symbols=שם הקובץ]
[--הוסף-סמל שם=[סעיף:]ערך[,דגלים]
[--alt-machine-code=מדד]
[--prefix-symbols=מחרוזת]
[--prefix-sections=מחרוזת]
[--prefix-aloc-sections=מחרוזת]
[--add-gnu-debuglink=נתיב לקובץ]
[--שמור-קובץ-סמלים]
[--רק-לשמור על ניפוי באגים]
[--סטריפ-דוו]
[--extract-dwo]
[--חלץ-סמל]
[--טקסט ניתן לכתיבה]
[--טקסט לקריאה בלבד]
[--טָהוֹר]
[--טָמֵא]
[---file-alignment=NUM]
[--ערמה=גודל]
[--image-base=כתובת]
[---section-alignment=NUM]
[--מחסנית=גודל]
[--תת מערכת=אשר:גדול.קטין]
[--compress-debug-sections]
[--decompress-debug-sections]
[--גמד-עומק=n]
[--גמד-התחלה=n]
[-v|--מִלוּלִי]
[-V|--גִרְסָה]
[- עזרה] [- מידע]
בקובץ [אוסף]
תיאור
ה- GNU עותק כלי השירות מעתיק את התוכן של קובץ אובייקט לאחר. עותק שימושים
ספריית GNU BFD כדי לקרוא ולכתוב את קבצי האובייקט. זה יכול לכתוב את היעד
קובץ אובייקט בפורמט שונה מזה של קובץ אובייקט המקור. ההתנהגות המדויקת
of עותק נשלט על ידי אפשרויות שורת הפקודה. ציין זאת עותק צריך להיות מסוגל
העתק קובץ מקושר לחלוטין בין שני פורמטים כלשהם. עם זאת, העתקת אובייקט שניתן להזזה
ייתכן שקובץ בין שני פורמטים לא יפעל כמצופה.
עותק יוצר קבצים זמניים כדי לבצע את התרגומים שלו ומוחק אותם לאחר מכן.
עותק משתמש ב-BFD כדי לבצע את כל עבודת התרגום שלו; יש לו גישה לכל הפורמטים
מתואר ב-BFD ובכך הוא מסוגל לזהות את רוב הפורמטים מבלי שנאמר להם במפורש.
עותק ניתן להשתמש ליצירת רשומות S על ידי שימוש ביעד פלט של סרק (למשל, השתמש -O
סרק).
עותק ניתן להשתמש כדי ליצור קובץ בינארי גולמי באמצעות יעד פלט של בינרי
(למשל, השתמש -O בינרי). מתי עותק יוצר קובץ בינארי גולמי, זה בעצם יעשה
לייצר זיכרון dump של התוכן של קובץ אובייקט הקלט. כל הסמלים ו
מידע על רילוקיישן יימחק. dump הזיכרון יתחיל בכתובת הטעינה
של החלק הנמוך ביותר שהועתק לקובץ הפלט.
בעת יצירת רשומה S או קובץ בינארי גולמי, זה עשוי להיות שימושי -S כדי להסיר
קטעים המכילים מידע על ניפוי באגים. במקרים מסוימים -R יהיה שימושי להסרה
קטעים המכילים מידע שאינו נחוץ על ידי הקובץ הבינארי.
הערה---עותק אינו מסוגל לשנות את מידת הקצה של קבצי הקלט שלו. אם הקלט
לפורמט יש קצה (חלק מהפורמטים לא), עותק יכול רק להעתיק את הקלט לקובץ
פורמטים בעלי אותה קצה או שאין להם קצה (למשל, סרק). (למרות זאת,
לראות --reverse-bytes אוֹפְּצִיָה.)
אפשרויות
בקובץ
אוסף
קבצי הקלט והפלט, בהתאמה. אם לא תפרט אוסף, עותק
יוצר קובץ זמני ומשנה באופן הרסני את שם התוצאה בשם של בקובץ.
-I bfdname
--input-target=bfdname
שקול את פורמט האובייקט של קובץ המקור להיות bfdname, במקום לנסות
להסיק את זה.
-O bfdname
--output-target=bfdname
כתוב את קובץ הפלט באמצעות פורמט האובייקט bfdname.
-F bfdname
--מטרה=bfdname
השתמש bfdname כפורמט האובייקט הן עבור קובץ הקלט והן עבור קובץ הפלט; כלומר, פשוט
העברת נתונים ממקור ליעד ללא תרגום.
-B bfdarch
--בינארי-ארכיטקטורה=bfdarch
שימושי בעת הפיכת קובץ קלט נטול ארכיטקטורה לקובץ אובייקט. בזה
במקרה שניתן להגדיר את ארכיטקטורת הפלט bfdarch. אפשרות זו תתעלם אם
לקובץ הקלט יש ידוע bfdarch. אתה יכול לגשת לנתונים הבינאריים האלה בתוך תוכנית
על ידי התייחסות לסמלים המיוחדים שנוצרים בתהליך ההמרה. אלה
סמלים נקראים _בינארי_מטרה_התחלה, _בינארי_מטרה_סוף ו
_בינארי_מטרה_גודל. למשל אתה יכול להפוך קובץ תמונה לקובץ אובייקט ו
ואז גש אליו בקוד שלך באמצעות סמלים אלה.
-j תבנית חתך
--only-section=תבנית חתך
העתק רק את הקטעים המצוינים מקובץ הקלט לקובץ הפלט. אפשרות זו
ניתן לתת יותר מפעם אחת. שים לב ששימוש לא הולם באפשרות זו עלול לגרום ל-
קובץ הפלט אינו שמיש. תווים כלליים מתקבלים ב תבנית חתך.
-R תבנית חתך
--remove-section=תבנית חתך
הסר כל קטע תואם תבנית חתך מקובץ הפלט. אפשרות זו עשויה להיות
ניתן יותר מפעם אחת. שים לב ששימוש לא הולם באפשרות זו עלול להפוך את הפלט
קובץ לא שמיש. תווים כלליים מתקבלים ב תבנית חתך. שימוש בשני ה -j
ו -R אפשרויות יחד גורמות להתנהגות לא מוגדרת.
-S
סטריפ-הכל
אין להעתיק מידע על רילוקיישן וסמלים מקובץ המקור.
-g
---strip-debug
אין להעתיק סמלי ניפוי באגים או קטעים מקובץ המקור.
--פס-מיותר
הסר את כל הסמלים שאינם נחוצים לעיבוד רילוקיישן.
-K שם סמל
-שמור על סמל =שם סמל
בעת הפשטת סמלים, שמור על סמל שם סמל גם אם בדרך כלל זה היה מופשט.
אפשרות זו עשויה להינתן יותר מפעם אחת.
-N שם סמל
--strip-symbol=שם סמל
אל תעתיק סמל שם סמל מקובץ המקור. אפשרות זו עשויה להינתן יותר
מפעם אחת.
--strip-uneeded-symbol=שם סמל
אל תעתיק סמל שם סמל מקובץ המקור אלא אם כן הוא נחוץ על ידי א
רילוקיישן. אפשרות זו עשויה להינתן יותר מפעם אחת.
-G שם סמל
--keep-global-symbol=שם סמל
שמור רק סמל שם סמל גלוֹבָּלִי. הפוך את כל הסמלים האחרים למקומיים לקובץ, כך ש
הם אינם נראים כלפי חוץ. אפשרות זו עשויה להינתן יותר מפעם אחת.
--localize-hidden
באובייקט ELF, סמן את כל הסמלים שיש להם נראות נסתרת או פנימית כמקומיים.
אפשרות זו חלה על אפשרויות לוקליזציה ספציפיות לסמלים כגון -L.
-L שם סמל
--localize-symbol=שם סמל
הפוך סמל שם סמל מקומי לקובץ, כך שהוא לא יהיה גלוי חיצונית. זֶה
אפשרות ניתנת יותר מפעם אחת.
-W שם סמל
--להחליש-סמל=שם סמל
הפוך סמל שם סמל חלש. אפשרות זו עשויה להינתן יותר מפעם אחת.
--globalize-symbol=שם סמל
תן סמל שם סמל היקף גלובלי כך שהוא יהיה גלוי מחוץ לקובץ ב
שהוא מוגדר. אפשרות זו עשויה להינתן יותר מפעם אחת.
-w
-ווילדקארד
אפשר ביטויים רגולריים ב שם סמלבשימוש באפשרויות אחרות של שורת הפקודה. ה
סימני שאלה (?), כוכבית (*), קו נטוי אחורי (\) וסוגריים מרובעים ([]) יכולים
לשמש בכל מקום בשם הסמל. אם התו הראשון של שם הסמל הוא ה
סימן קריאה (!) אז תחושת המתג מתהפכת עבור אותו סמל. ל
דוּגמָה:
-w -W !foo -W fo*
יגרום ל-objcopy להחליש את כל הסמלים שמתחילים ב-"fo" מלבד הסמל
"פו".
-x
--זרוק-הכל
אל תעתיק סמלים לא גלובליים מקובץ המקור.
-X
--זרוק-מקומיים
אל תעתיק סמלים מקומיים שנוצרו על ידי מהדר. (אלו בדרך כלל מתחילים ב L or ..)
-b בייט
--byte=בייט
אם השזירה הופעלה דרך ה --שזירה אפשרות ואז התחל את הטווח של
בתים לשמור על בייטבייט. בייט יכול להיות בטווח שבין 0 ל רוחב-1, איפה
רוחב הוא הערך שניתן על ידי ה --שזירה אוֹפְּצִיָה.
-i [רוחב]
--interleave[=רוחב]
העתק רק טווח מכל אחד רוחב בתים. (נתוני הכותרת אינם מושפעים). בחר
איזה בייט בטווח מתחיל את ההעתקה ב- --בית אוֹפְּצִיָה. בחר את הרוחב של
הטווח עם ה --רוחב interleave אוֹפְּצִיָה.
אפשרות זו שימושית ליצירת קבצים לתכנת ROM. הוא משמש בדרך כלל עם an
יעד פלט "srec". ציין זאת עותק תתלונן אם לא תציין את
--בית אפשרות גם כן.
ברירת המחדל של רוחב השזירה הוא 4, אז עם --בית מוגדר ל-0, עותק יעתיק את
בית ראשון מתוך כל ארבעה בתים מהקלט לפלט.
--interleave-width=רוחב
בשימוש עם ה --שזירה אפשרות, העתקה רוחב בתים בכל פעם. ההתחלה של ה
טווח הבתים להעתקה נקבע על ידי ה- --בית אפשרות, והיקף הטווח
מוגדר עם --שזירה אוֹפְּצִיָה.
ערך ברירת המחדל עבור אפשרות זו הוא 1. הערך של רוחב בתוספת בייט ערך שנקבע על ידי
מה היא --בית אסור לחרוג מרוחב השזירה שנקבע על ידי --שזירה
אוֹפְּצִיָה.
ניתן להשתמש באפשרות זו ליצירת תמונות עבור שני הבזקים של 16 סיביות המשולבים ב-a
אוטובוס 32 סיביות במעבר -b 0 -i 4 --interleave-width=2 ו -b 2 -i 4
--interleave-width=2 לשני עותק פקודות. אם הקלט היה '12345678' אז ה-
הפלטים יהיו '1256' ו'3478' בהתאמה.
-p
--שימור-תאריכים
הגדר את תאריכי הגישה והשינוי של קובץ הפלט להיות זהים לאלו של
קובץ הקלט.
-D
--אפשר-דטרמיניסטי-ארכיונים
לפעול ב דטרמיניסטי מצב. בעת העתקת חברי ארכיון וכתיבת הארכיון
אינדקס, השתמש באפס עבור UIDs, GIDs, חותמות זמן, והשתמש במצבי קובץ עקביים עבור כל
קבצים.
If בינוטילים הוגדר עם --אפשר-דטרמיניסטי-ארכיונים, אז מצב זה מופעל
כברירת מחדל. זה יכול להיות מושבת עם -U אפשרות, למטה.
-U
--השבת-דטרמיניסטי-ארכיונים
Do לֹא פועל ב דטרמיניסטי מצב. זהו היפוך של -D אפשרות, למעלה:
בעת העתקת חברי ארכיון וכתיבת אינדקס הארכיון, השתמש ב-UID שלהם, GID,
חותמת זמן וערכי מצב קובץ.
זוהי ברירת המחדל אלא אם כן בינוטילים הוגדר עם
--אפשר-דטרמיניסטי-ארכיונים.
-- איתור באגים
המר מידע על ניפוי באגים, אם אפשר. זו לא ברירת המחדל כי רק
פורמטים מסוימים של ניפוי באגים נתמכים, ותהליך ההמרה יכול להיות זמן
צורכת.
--מילוי פער val
למלא פערים בין הקטעים עם val. פעולה זו חלה על לִטעוֹן כתובת (LMA)
של הסעיפים. זה נעשה על ידי הגדלת גודל הקטע עם התחתון
כתובת, ומילוי החלל הנוסף שנוצר עם val.
--pad-to כתובת
רפד את קובץ הפלט עד לכתובת הטעינה כתובת. זה נעשה על ידי הגדלת ה
גודל הקטע האחרון. הרווח הנוסף ממולא בערך שצוין על ידי
--מילוי פער (ברירת מחדל אפס).
--הצב התחלה val
הגדר את כתובת ההתחלה של הקובץ החדש ל val. לא כל פורמטים של קבצי אובייקט תומכים
הגדרת כתובת ההתחלה.
--שינוי-התחל תוספת
--התאם-התחל תוספת
שנה את כתובת ההתחלה על ידי הוספה תוספת. לא כל פורמטים של קבצי אובייקט תומכים בהגדרה
כתובת ההתחלה.
--שינוי כתובות תוספת
--adjust-vma תוספת
שנה את כתובות ה-VMA וה-LMA של כל המקטעים, כמו גם את כתובת ההתחלה, על ידי
מוסיף תוספת. פורמטים מסוימים של קבצי אובייקט אינם מאפשרים לשנות כתובות של חלקים
שרירותי. שימו לב שזה לא מעביר את המדורים; אם התוכנית מצפה
קטעים שיטענו בכתובת מסוימת, ואפשרות זו משמשת לשינוי ה-
מקטעים כך שהם נטענים בכתובת אחרת, התוכנית עלולה להיכשל.
--שנה-מדור-כתובת תבנית חתך{=,+,-}val
--adjust-section-vma תבנית חתך{=,+,-}val
הגדר או שנה גם את כתובת ה-VMA וגם את כתובת ה-LMA של כל קטע תואם
תבנית חתך. אם = בשימוש, כתובת המדור מוגדרת ל val. אחרת, val is
התווסף או נגרע מכתובת המדור. ראה את ההערות למטה
--שינוי כתובות, למעלה. אם תבנית חתך אינו תואם אף סעיף בקלט
קובץ, תינתן אזהרה, אלא אם כן --אזהרות ללא שינוי משמש.
--change-section-lma תבנית חתך{=,+,-}val
הגדר או שנה את כתובת ה-LMA של קטעים תואמים תבנית חתך. ה-LMA
כתובת היא הכתובת שבה הקטע ייטען לזיכרון בעת טעינת התוכנית
זְמַן. בדרך כלל זה זהה לכתובת VMA, שהיא הכתובת של
סעיף בזמן ריצת התוכנית, אך במערכות מסוימות, במיוחד אלה שבהן תוכנית נמצאת
שנערך ב-ROM, השניים יכולים להיות שונים. אם = בשימוש, כתובת המדור מוגדרת ל
val. אחרת, val מתווסף או מופחת מכתובת המדור. ראה את
הערות מתחת --שינוי כתובות, למעלה. אם תבנית חתך אינו תואם אף אחד
מקטעים בקובץ הקלט, תינתן אזהרה, אלא אם כן --אזהרות ללא שינוי is
מְשׁוּמָשׁ.
--change-section-vma תבנית חתך{=,+,-}val
הגדר או שנה את כתובת ה-VMA של כל קטע תואם תבנית חתך. כתובת ה-VMA
היא הכתובת שבה המדור ימוקם לאחר תחילת התוכנית
מְבַצֵעַ. בדרך כלל זה זהה לכתובת LMA, שהיא הכתובת שבה
הסעיף ייטען לזיכרון, אך במערכות מסוימות, במיוחד אלו שבהן א
התוכנית מתקיימת ב- ROM, השניים יכולים להיות שונים. אם = משמש, כתובת המדור
מוגדר val. אחרת, val מתווסף או מופחת מכתובת המדור.
ראה את ההערות למטה --שינוי כתובות, למעלה. אם תבנית חתך לא מתאים
כל סעיפים בקובץ הקלט, תינתן אזהרה, אלא אם כן --אזהרות ללא שינוי
משמש.
--שינוי-אזהרות
--התאם-אזהרות
If --שנה-מדור-כתובת or --change-section-lma or --change-section-vma משמש,
ודפוס הסעיף אינו תואם לאף סעיף, פרסם אזהרה. זה
ברירת המחדל.
--אזהרות ללא שינוי
--אזהרות ללא התאמה
אל תוציא אזהרה אם --שנה-מדור-כתובת or --adjust-section-lma or
--adjust-section-vma נעשה שימוש, גם אם תבנית המקטע לא תואמת לאף חלק.
--set-section-flags תבנית חתך=דגלים
הגדר את הדגלים עבור כל קטע תואם תבנית חתך. ה דגלים טיעון הוא פסיק
מחרוזת מופרדת של שמות דגלים. השמות המוכרים הם להקצות, תוכן, לִטעוֹן,
ללא עומס, באופן קריא, קוד, נתונים, ROM, נתח, ו באגים. אתה יכול להגדיר את תוכן דגל
עבור סעיף שאין לו תוכן, אך אין זה משמעותי לנקות את
תוכן דגל של קטע שיש לו תוכן - פשוט הסר את הקטע במקום.
לא כל הדגלים הם בעלי משמעות עבור כל הפורמטים של קבצי האובייקט.
--add-section שם המדור=שם הקובץ
הוסף קטע חדש בשם שם המדור תוך כדי העתקת הקובץ. התוכן של החדש
הקטע לקוח מהקובץ שם הקובץ. גודל הקטע יהיה בגודל של
הקובץ. אפשרות זו פועלת רק בפורמטים של קבצים שיכולים לתמוך בקטעים איתם
שמות שרירותיים. הערה - ייתכן שיהיה צורך להשתמש ב- --set-section-flags אפשרות ל
הגדר את התכונות של הקטע החדש שנוצר.
--מקטע-dump שם המדור=שם הקובץ
מקם את התוכן של הקטע עם השם שם המדור לתוך הקובץ שם הקובץ, כתיבה
כל תוכן שאולי היה שם בעבר. אפשרות זו היא היפוך של
--add-section. אפשרות זו דומה ל- --רק-סעיף אפשרות חוץ מזה שזה
לא יוצר קובץ מעוצב, הוא פשוט זורק את התוכן כנתונים בינאריים גולמיים,
מבלי להחיל שום רילוקיישן. ניתן לציין את האפשרות יותר מפעם אחת.
--מדור-עדכון שם המדור=שם הקובץ
החלף את התוכן הקיים של מדור בשם שם המדור עם תוכן הקובץ
שם הקובץ. גודל הקטע יותאם לגודל הקובץ. ה
מדור דגלי עבור שם המדור יהיה ללא שינוי. עבור קבצים בפורמט ELF, הקטע אל
גם מיפוי המקטעים יישאר ללא שינוי, דבר שלא ניתן להשתמש בו
--הסר-סעיף אחריו --add-section. ניתן לציין את האפשרות יותר מ
פַּעַם.
שימו לב - אפשר להשתמש --שנה שם-סעיף ו --מדור-עדכון גם לעדכן וגם
שנה שם מקטע משורת פקודה אחת. במקרה זה, העבר את שם המדור המקורי
ל --מדור-עדכון, ושמות המדורים המקוריים והחדשים אל --שנה שם-סעיף.
--הוסף-סמל שם=[סעיף:]ערך[,דגלים]
הוסף סמל חדש בשם שם תוך כדי העתקת הקובץ. ניתן לציין אפשרות זו
מספר פעמים. אם ה סעיף נתון, הסמל ישויך עם ו
יחסית לאותו סעיף, אחרת זה יהיה סמל ABS. ציון לא מוגדר
סעיף יגרום לשגיאה קטלנית. אין בדיקה של הערך, זה יהיה
נלקח כמפורט. ניתן לציין דגלי סמלים ולא כל הדגלים יהיו
משמעותי עבור כל הפורמטים של קבצי האובייקט. כברירת מחדל, הסמל יהיה גלובלי. ה
דגל מיוחד 'לפני=othersym' יכניס את הסמל החדש לפני הסמל שצוין
othersym, אחרת הסמל/ים יתווספו בסוף טבלת הסמלים ב-
לפי סדר הופעתם.
--שנה שם-סעיף שם ישן=שם חדש[,דגלים]
שנה שם מקטע מ שם ישן ל שם חדש, שינוי אופציונלי של הדגלים של המדור ל
דגלים בתהליך. יש לזה יתרון על פני שימוש בסקריפט מקשר לביצוע
שנה שם בכך שהפלט נשאר כקובץ אובייקט ולא הופך למקושר
הפעלה.
אפשרות זו מועילה במיוחד כאשר פורמט הקלט הוא בינארי, שכן זה יהיה
תמיד ליצור קטע בשם .data. אם למשל, רצית במקום זאת ליצור א
סעיף שנקרא .rodata המכיל נתונים בינאריים תוכל להשתמש בשורת הפקודה הבאה
כדי להשיג את זה:
objcopy -I בינארי -O -ב
--rename-section .data=.rodata,alloc,load,readonly,data,content
--שמות קטעים ארוכים {enable,disable,keep}
שולט בטיפול בשמות מקטעים ארוכים בעת עיבוד "COFF" ו-"PE-COFF"
פורמטים של אובייקטים. התנהגות ברירת המחדל, לשמור, הוא לשמר שמות קטעים ארוכים אם יש
נמצאים בקובץ הקלט. ה לאפשר ו להשבית אפשרויות מאפשרות בכוח או
השבת את השימוש בשמות מקטעים ארוכים באובייקט הפלט; מתי להשבית בתוקף,
כל שמות מקטעים ארוכים באובייקט הקלט יקוצצו. ה לאפשר אפשרות תהיה
פולט שמות קטעים ארוכים רק אם קיימים בכניסות; זה לרוב אותו דבר
as לשמור, אך לא מוגדר אם ה לאפשר אפשרות עשויה לאלץ את היצירה
של טבלת מחרוזת ריקה בקובץ הפלט.
--change-leading-char
חלק מהפורמטים של קבצי אובייקט משתמשים בתווים מיוחדים בתחילת הסמלים. הכי
תו נפוץ כזה הוא קו תחתון, שלעתים קרובות מהדרים מוסיפים לפני כל סמל.
אפשרות זו מספרת עותק לשנות את הדמות המובילה של כל סמל כאשר הוא
ממירה בין פורמטים של קבצי אובייקט. אם פורמטים של קובץ האובייקט השתמשו באותו מוביל
תו, לאפשרות זו אין השפעה. אחרת, הוא יוסיף תו, או יסיר א
דמות, או לשנות דמות, לפי העניין.
--remove-leading-char
אם התו הראשון של סמל גלובלי הוא סמל מיוחד תו מוביל בשימוש
לפי פורמט קובץ האובייקט, הסר את התו. הסמל הנפוץ ביותר המוביל
הדמות היא קו תחתון. אפשרות זו תסיר קו תחתון מוביל מכל העולם
סמלים. זה יכול להיות שימושי אם אתה רוצה לקשר בין אובייקטים של קבצים שונים
פורמטים עם מוסכמות שונות עבור שמות סמלים. זה שונה מ
--change-leading-char כי זה תמיד משנה את שם הסמל כאשר מתאים,
ללא קשר לפורמט קובץ האובייקט של קובץ הפלט.
--reverse-bytes=NUM
הפוך את הבתים בקטע עם תוכן פלט. אורך קטע חייב להיות שווה
מתחלק בערך שניתן על מנת שההחלפה תוכל להתבצע. היפוך
מתרחש לפני ביצוע השזירה.
אפשרות זו משמשת בדרך כלל ביצירת תמונות ROM עבור מערכות יעד בעייתיות.
לדוגמה, בחלק מלוחות היעד, המילים של 32 סיביות שנלקחו מ-8 סיביות ROM מחודשות.
מורכב בסדר בתים קטן אנדיאן ללא קשר לסדר בתים של המעבד. תלוי ב
במודל התכנות, ייתכן שיהיה צורך לשנות את מידת הקצה של ה-ROM.
שקול קובץ פשוט עם קטע המכיל את שמונת הבתים הבאים: 12345678.
שימוש --reverse-bytes=2 עבור הדוגמה לעיל, הבתים בקובץ הפלט יהיו
הזמין 21436587.
שימוש --reverse-bytes=4 עבור הדוגמה לעיל, הבתים בקובץ הפלט יהיו
הזמין 43218765.
על ידי שימוש --reverse-bytes=2 עבור הדוגמה לעיל, ואחריה --reverse-bytes=4 על
קובץ הפלט, הבתים בקובץ הפלט השני יוזמנו 34127856.
--srec-len=ival
משמעות רק עבור פלט srec. הגדר את האורך המרבי של ה-Srecords
מיוצר ל ival. אורך זה מכסה הן שדות כתובת, נתונים ו-crc.
--srec-forceS3
משמעות רק עבור פלט srec. הימנע מיצירת רשומות S1/S2, יצירת S3 בלבד
פורמט שיא.
---refine-sym זקן=חדש
שנה את השם של סמל זקן, כדי חדש. זה יכול להיות שימושי כאשר מישהו מנסה קישור
שני דברים ביחד שאין לך מקור להם, ויש התנגשויות שמות.
--refine-syms=שם הקובץ
החל ---refine-sym לכל זוג סמלים"זקן חדש" רשום בקובץ שם הקובץ.
שם הקובץ הוא פשוט קובץ שטוח, עם זוג סמלים אחד בכל שורה. הערות שורה עשויות להיות
מוצג על ידי תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--לְהַחלִישׁ
שנה את כל הסמלים הגלובליים בקובץ להיות חלשים. זה יכול להיות שימושי בעת בניית א
אובייקט שיקושר לאובייקטים אחרים באמצעות ה- -R אפשרות למקשר.
אפשרות זו יעילה רק כאשר משתמשים בפורמט קובץ אובייקט התומך בחלש
סמלים.
--keep-symbols=שם הקובץ
החל --שמור-סמל אפשרות לכל סמל הרשום בקובץ שם הקובץ. שם הקובץ is
פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. הערות שורה עשויות להיות מוצגות על ידי
תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--strip-symbols=שם הקובץ
החל --סמל-רצועה אפשרות לכל סמל הרשום בקובץ שם הקובץ. שם הקובץ is
פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. הערות שורה עשויות להיות מוצגות על ידי
תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--strip-unneeded-symbols=שם הקובץ
החל סמל-רצועה-מיותר אפשרות לכל סמל הרשום בקובץ שם הקובץ.
שם הקובץ הוא פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. הערות שורה עשויות להיות
מוצג על ידי תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--keep-global-symbols=שם הקובץ
החל --שמור-סמל-גלובלי אפשרות לכל סמל הרשום בקובץ שם הקובץ.
שם הקובץ הוא פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. הערות שורה עשויות להיות
מוצג על ידי תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--localize-symbols=שם הקובץ
החל --סמל-לוקליז אפשרות לכל סמל הרשום בקובץ שם הקובץ. שם הקובץ
הוא פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. ייתכן שיוצגו הערות בשורה
לפי תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--globalize-symbols=שם הקובץ
החל --גלוב-סמל אפשרות לכל סמל הרשום בקובץ שם הקובץ. שם הקובץ
הוא פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. ייתכן שיוצגו הערות בשורה
לפי תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--weaken-symbols=שם הקובץ
החל --להחליש-סמל אפשרות לכל סמל הרשום בקובץ שם הקובץ. שם הקובץ is
פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. הערות שורה עשויות להיות מוצגות על ידי
תו ה-hash. אפשרות זו עשויה להינתן יותר מפעם אחת.
--alt-machine-code=מדד
אם לארכיטקטורת הפלט יש קודי מכונה חלופיים, השתמש ב- מדדהקוד במקום
של ברירת המחדל. זה שימושי במקרה שלמכונה מוקצה קוד רשמי ו
שרשרת הכלים מאמצת את הקוד החדש, אך יישומים אחרים עדיין תלויים ב-
נעשה שימוש בקוד המקורי. עבור ארכיטקטורות מבוססות ELF אם ה מדד אלטרנטיבה עושה זאת
לא קיים אז הערך יטופל כמספר מוחלט שיש לאחסן ב-
שדה e_machine של כותרת ה-ELF.
--טקסט ניתן לכתיבה
סמן את טקסט הפלט ככתוב. אפשרות זו אינה משמעותית עבור כל קבצי האובייקט
פורמטים.
--טקסט לקריאה בלבד
הפוך את טקסט הפלט לכתיבה מוגן. אפשרות זו אינה משמעותית עבור כל האובייקטים
פורמטים של קבצים.
--טָהוֹר
סמן את קובץ הפלט כדפדפן דרישה. אפשרות זו אינה משמעותית עבור כל האובייקטים
פורמטים של קבצים.
--טָמֵא
סמן את קובץ הפלט כלא טהור. אפשרות זו אינה משמעותית עבור כל קבצי האובייקטים
פורמטים.
--prefix-symbols=מחרוזת
קידומת כל הסמלים בקובץ הפלט עם מחרוזת.
--prefix-sections=מחרוזת
קידומת כל שמות הסעיפים בקובץ הפלט עם מחרוזת.
--prefix-aloc-sections=מחרוזת
קידומת כל השמות של כל הסעיפים שהוקצו בקובץ הפלט עם מחרוזת.
--add-gnu-debuglink=נתיב לקובץ
יוצר מקטע .gnu_debuglink המכיל הפניה ל נתיב לקובץ ומוסיף
זה לקובץ הפלט. הערה: הקובץ בכתובת נתיב לקובץ חייב להתקיים. חלק מ
תהליך הוספת הקטע .gnu_debuglink כרוך בהטמעת סכום ביקורת של ה-
התוכן של קובץ המידע לניפוי באגים לתוך הקטע.
אם קובץ המידע לניפוי באגים בנוי במיקום אחד אך הוא הולך להיות מותקן ב-a
מאוחר יותר למיקום אחר אל תשתמש בנתיב אל המותקן
מקום. ה --add-gnu-debuglink האפשרות תיכשל מכיוון שהקובץ המותקן כן
לא קיים עדיין. במקום זאת, הכנס את קובץ המידע לניפוי באגים בספרייה הנוכחית והשתמש ב-
--add-gnu-debuglink אפשרות ללא רכיבי ספרייה, כמו זה:
objcopy --add-gnu-debuglink=foo.debug
בזמן ניפוי הבאגים מנפה הבאגים ינסה לחפש את קובץ המידע הנפרד באגים ב-a
קבוצה של מיקומים ידועים. הסט המדויק של מיקומים אלה משתנה בהתאם ל
הפצה בשימוש, אך היא כוללת בדרך כלל:
"* אותה ספרייה כמו קובץ ההפעלה."
"* ספריית משנה של הספרייה המכילה את קובץ ההפעלה"
בשם .debug
"* ספריית ניפוי באגים גלובלית כגון /usr/lib/debug."
כל עוד קובץ המידע לניפוי באגים הותקן באחד מהמיקומים האלה בעבר
מאתר הבאגים מופעל הכל אמור לעבוד כמו שצריך.
--שמור-קובץ-סמלים
בעת הפשטת קובץ, אולי עם ---strip-debug or --פס-מיותר, לשמור על כל
סמלים המציינים את שמות קבצי המקור, שאחרת היו נמחקים.
--רק-לשמור על ניפוי באגים
הסר קובץ, הסרת תוכן של כל חלקים שלא יימחקו על ידי
---strip-debug והשארת חלקי ניפוי הבאגים ללא פגע. בקבצי ELF, זה נשמר
כל קטעי ההערה בפלט.
הערה - כותרות הסעיפים של הקטעים המופשטים נשמרות, כולל שלהם
גדלים, אך תוכן הקטע נמחק. כותרות הסעיפים הן
נשמר כך שכלים אחרים יכולים להתאים את קובץ debuginfo לקובץ האמיתי
קובץ הפעלה, גם אם קובץ ההפעלה הועבר למרחב כתובות אחר.
הכוונה היא שאופציה זו תשמש בשילוב עם --add-gnu-debuglink
כדי ליצור קובץ הפעלה בשני חלקים. אחד בינארי מופשט אשר יתפוס פחות מקום
ב-RAM ובתפוצה והשני קובץ מידע באגים שהוא בלבד
נחוץ אם נדרשות יכולות ניפוי באגים. ההליך המוצע ליצירת אלה
הקבצים הם כדלקמן:
1.
"פו" אז...
1.
ליצור קובץ המכיל את מידע ניפוי הבאגים.
1.
קובץ הפעלה מופשט.
1.
כדי להוסיף קישור למידע על ניפוי באגים לקובץ ההפעלה שהוסר.
שים לב --- הבחירה ב-".dbg" בתור סיומת לקובץ המידע באגים היא שרירותית.
גם השלב "--רק-שמור-ניפוי באגים" הוא אופציונלי. אתה יכול במקום זאת לעשות זאת:
1.
1.
1.
1.
כלומר, הקובץ שעליו הצביע ה- --add-gnu-debuglink יכול להיות קובץ ההפעלה המלא. זה
לא חייב להיות קובץ שנוצר על ידי --רק-לשמור על ניפוי באגים מתג.
הערה --- מתג זה מיועד לשימוש רק בקבצים מקושרים מלאים. זה לא עושה
הגיוני להשתמש בו על קובצי אובייקט שבהם ייתכן שמידע איתור הבאגים אינו שלם.
חוץ מזה התכונה gnu_debuglink תומכת כרגע רק בנוכחות של שם קובץ אחד
מכיל מידע על ניפוי באגים, לא שמות קבצים מרובים בקובץ אחד לכל אובייקט
בסיס.
--סטריפ-דוו
הסר את התוכן של כל קטעי DWARF .dwo, השאר את שאר איתור הבאגים
חלקים וכל הסמלים שלמים. אפשרות זו מיועדת לשימוש על ידי המהדר as
חלק -gsplit-גמד אפשרות, המפצלת מידע על ניפוי באגים בין קובץ ה-.o
וקובץ .dwo נפרד. המהדר מייצר את כל מידע באגים באותו
קובץ, ולאחר מכן משתמש ב- --extract-dwo אפשרות להעתיק את קטעי ה-.dwo לקובץ ה-.dwo,
אז ה --סטריפ-דוו אפשרות להסיר את הקטעים האלה מקובץ ה-.o המקורי.
--extract-dwo
חלץ את התוכן של כל קטעי DWARF .dwo. ראה את --סטריפ-דוו אפשרות לעוד
מידע.
--יישור קבצים NUM
ציין את יישור הקובץ. קטעים בקובץ יתחילו תמיד בקיזוז קבצים
שהם כפולות של מספר זה. ברירת המחדל היא 512. [אפשרות זו היא ספציפית
למטרות PE.]
--ערימה לְהַזמִין
--ערימה לְהַזמִין,לבצע
ציין את מספר הבתים של הזיכרון שיש לשמור (ואופציונלי להתחייב) לשימוש
ערימה עבור התוכנית הזו. [אפשרות זו היא ספציפית למטרות PE.]
---image-base ערך
השתמש ערך ככתובת הבסיס של התוכנית או ה-dll שלך. זהו הזיכרון הנמוך ביותר
מיקום שישמש כאשר התוכנית או ה-dll שלך נטענים. כדי לצמצם את הצורך
להעביר ולשפר את הביצועים של קבצי ה-DLL שלך, לכל אחד מהם צריכה להיות כתובת בסיס ייחודית
ולא חופפים לאף קובץ dll אחר. ברירת המחדל היא 0x400000 עבור קובצי הפעלה, ו
0x10000000 עבור קבצי dll. [אפשרות זו היא ספציפית למטרות PE.]
-- יישור מקטע NUM
מגדיר את יישור הקטע. קטעים בזיכרון תמיד יתחילו בכתובות אשר
הם כפולה של מספר זה. ברירת המחדל היא 0x1000. [אפשרות זו היא ספציפית ל-PE
מטרות.]
--לַעֲרוֹם לְהַזמִין
--לַעֲרוֹם לְהַזמִין,לבצע
ציין את מספר הבתים של הזיכרון שיש לשמור (ואופציונלי להתחייב) לשימוש
מחסנית עבור תוכנית זו. [אפשרות זו היא ספציפית למטרות PE.]
-- תת מערכת אשר
-- תת מערכת אשר:גדול
-- תת מערכת אשר:גדול.קטין
מציין את תת-המערכת שבה התוכנית שלך תבוצע. הערכים המשפטיים עבור
אשר הם "מקורי", "חלונות", "קונסול", "posix", "efi-app", "efi-bsd", "efi-rtd",
"sal-rtd", ו-"xbox". אתה יכול להגדיר גם את גרסת תת-המערכת. מספרי
ערכים מקובלים גם עבור אשר. [אפשרות זו היא ספציפית למטרות PE.]
--חלץ-סמל
שמור את הדגלים והסמלים של הקובץ אך הסר את כל נתוני הקטע. במיוחד,
האפשרות:
*
*
*
אפשרות זו משמשת לבניית א .sym קובץ עבור ליבת VxWorks. זה יכול להיות גם א
דרך שימושית להקטנת הגודל של א --רק-סמלים קובץ קלט מקשר.
--compress-debug-sections
דחוס קטעי ניפוי באגים של DWARF באמצעות zlib עם SHF_COMPRESSED מה-ELF ABI. הערה -
אם הדחיסה באמת תיצור קטע גדול יותר, אז זה לא דחוס.
--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
עבור קובצי ELF, אפשרויות אלו שולטות כיצד קטעי ניפוי באגים של DWARF נדחסים.
--compress-debug-sections=none שווה --decompress-debug-sections.
--compress-debug-sections=zlib ו --compress-debug-sections=zlib-gabi שוות ערך
ל --compress-debug-sections. --compress-debug-sections=zlib-gnu דוחס DWARF
איתור באגים בקטעים באמצעות zlib. שמם של מקטעי ניפוי הבאגים מתחיל עם זה .zdebug
במקום .לנפות. הערה - אם דחיסה באמת תיצור קטע גדול יותר, לאחר מכן
זה לא דחוס ולא שונה שם.
--decompress-debug-sections
דחוס קטעי ניפוי באגים של DWARF באמצעות zlib. שמות הסעיפים המקוריים של
קטעים דחוסים משוחזרים.
-V
--גִרְסָה
הצג את מספר הגרסה של עותק.
-v
--מִלוּלִי
פלט מפורט: רשום את כל קבצי האובייקטים ששונו. במקרה של ארכיון, עותק -V
מפרט את כל חברי הארכיון.
- עזרה
הצג סיכום של האפשרויות ל עותק.
- מידע
הצג רשימה המציגה את כל הארכיטקטורות והפורמטים הזמינים של אובייקטים.
@פילה
קרא את אפשרויות שורת הפקודה מ פילה. האפשרויות שנקראו מוכנסות במקום
מקורי @פילה אוֹפְּצִיָה. אם פילה לא קיים, או לא ניתן לקרוא, אז האפשרות
יטופל פשוטו כמשמעו, ולא יוסר.
אפשרויות ב פילה מופרדים על ידי רווח לבן. תו רווח עשוי להיכלל
באופציה על ידי הקיפת כל האופציה במרכאות בודדות או כפולות. כל
תו (כולל קו נטוי אחורי) עשוי להיכלל על ידי הקדמת התו להיות
כלול עם קו נטוי אחורי. ה פילה עשוי בעצמו להכיל @ נוסףפילה אפשרויות; כל
אפשרויות כאלה יעובדו באופן רקורסיבי.
השתמש ב-objcopy באופן מקוון באמצעות שירותי onworks.net