אנגליתצרפתיתגרמניתאיטלקיפורטוגזירוסיספרדי

סמל OnWorks

mips64el-linux-gnuabi64-ld.bfd - מקוון בענן

הפעל את mips64el-linux-gnuabi64-ld.bfd בספק אירוח חינמי של OnWorks באמצעות אובונטו אונליין, פדורה אונליין, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה mips64el-linux-gnuabi64-ld.bfd שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו בחינם כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


ld - המקשר של GNU

תַקצִיר


ld [אפשרויות] מטרה ...

תיאור


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

ld מקבל קבצי Linker Command Language שנכתבו בערכת-על של עורך הקישורים של AT&T
תחביר שפת הפקודה, כדי לספק שליטה מפורשת ומוחלטת על תהליך הקישור.

דף אדם זה אינו מתאר את שפת הפקודה; לראות את ld ערך ב"מידע" במלואו
פרטים על שפת הפקודה ועל היבטים אחרים של מקשר GNU.

גרסה זו של ld משתמש בספריות BFD למטרות כלליות כדי לפעול על קבצי אובייקט. זֶה
מאפשר ld לקרוא, לשלב ולכתוב קובצי אובייקט בפורמטים רבים ושונים --- עבור
לדוגמה, COFF או "a.out". פורמטים שונים עשויים להיות מקושרים יחד כדי לייצר כל
סוג זמין של קובץ אובייקט.

מלבד הגמישות שלו, מקשר GNU מועיל יותר מקישורים אחרים במתן
מידע אבחוני. קישורים רבים נוטשים את הביצוע מיד עם מפגש עם
שְׁגִיאָה; מתי שאפשר, ld ממשיך בביצוע, ומאפשר לך לזהות שגיאות אחרות
(או, במקרים מסוימים, לקבל קובץ פלט למרות השגיאה).

המקשר של GNU ld נועד לכסות מגוון רחב של מצבים, ולהיות תואם
ככל האפשר עם קישורים אחרים. כתוצאה מכך, יש לך אפשרויות רבות לשלוט בו
התנהגות.

אפשרויות


המקשר תומך בשפע של אפשרויות שורת פקודה, אך בפועל מעטות מהן
משמשים בכל הקשר מסוים. לדוגמה, שימוש תכוף ב ld זה לקשר
קובצי אובייקט Unix סטנדרטיים במערכת Unix סטנדרטית נתמכת. על מערכת כזו, כדי
קישור קובץ "hello.o":

אני כן /lib/crt0.o hello.o -lc

זה אומר ld לייצר קובץ בשם תפוקה כתוצאה מקישור הקובץ
"/lib/crt0.o" עם "hello.o" והספרייה "libc.a", שתגיע מהתקן
ספריות חיפוש. (ראה את הדיון ב -l אפשרות למטה.)

חלק מאפשרויות שורת הפקודה ל ld ניתן לציין בכל נקודה בשורת הפקודה.
עם זאת, אפשרויות המתייחסות לקבצים, כגון -l or -T, לגרום לקובץ להיקרא ב-
נקודה שבה מופיעה האפשרות בשורת הפקודה, ביחס לקבצי האובייקט ו
אפשרויות קבצים אחרות. חזרה על אפשרויות שאינן קבצים עם ארגומנט שונה יהיו גם
אין השפעה נוספת, או לעקוף התרחשויות קודמות (אלה שמרוחקות יותר משמאל בפקודה
שורה) של אפשרות זו. אפשרויות שעשויות להיות מוגדרות בצורה משמעותית יותר מפעם אחת הן
מצוין בתיאורים שלהלן.

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

בדרך כלל הקישור מופעל עם קובץ אובייקט אחד לפחות, אבל אתה יכול לציין אחר
צורות של קבצי קלט בינאריים באמצעות -l, -R, ושפת פקודת הסקריפט. אם לא בינרי
קבצי קלט בכלל מצוינים, המקשר אינו מייצר פלט כלשהו, ​​ומנפיק את
הודעה לא קלט קבצים.

אם המקשר לא יכול לזהות את הפורמט של קובץ אובייקט, הוא יניח שהוא a
סקריפט מקשר. סקריפט שצוין בדרך זו מגדיל את סקריפט המקשר הראשי המשמש עבורו
הקישור (או סקריפט המקשר המוגדר כברירת מחדל או זה שצוין באמצעות -T). זה
תכונה מאפשרת למקשר לקשר אל קובץ שנראה כאובייקט או קובץ
ארכיון, אלא למעשה רק מגדיר כמה ערכי סמלים, או משתמש ב-"INPUT" או "GROUP" כדי
להעמיס חפצים אחרים. ציון סקריפט בדרך זו רק מגדיל את המקשר הראשי
script, כאשר הפקודות הנוספות ממוקמות אחרי הסקריפט הראשי; להשתמש ב -T אפשרות להחליף
סקריפט המקשר המוגדר כברירת מחדל לחלוטין, אך שימו לב להשפעה של הפקודה "INSERT".

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

עבור אפשרויות ששמותיהן הם מספר אותיות, מקף אחד או שניים יכולים להקדים את
שם אפשרות; לדוגמה, -עקבות-סמל ו --סמל-עקבות שוות ערך. שימו לב---שם
הוא חריג אחד לכלל זה. אפשרויות של מספר אותיות שמתחילות באותיות קטנות 'o'
ניתן להקדים רק שני מקפים. זה כדי להפחית בלבול עם -o אוֹפְּצִיָה. לכן
לדוגמה -אומגי מגדיר את שם קובץ הפלט ל קסם ואילו --אומגי מגדיר את ה-NMAGIC
דגל על ​​הפלט.

טיעונים לאפשרויות מרובות אותיות חייבות להיות מופרדות משם האופציה על ידי א
סימן שווה, או להינתן כטיעונים נפרדים מיד לאחר האפשרות כי
דורש אותם. לדוגמה, --סמל-עקבות Foo ו --trace-symbol=foo שווים.
קיצורים ייחודיים של השמות של אפשרויות מרובות אותיות מתקבלים.

הערה --- אם הקישור מופעל בעקיפין, דרך מנהל התקן מהדר (למשל gcc)
כל אפשרויות שורת הפקודה מקשר צריכות להיות קידומת של -וול, (או מה שמתאים
עבור מנהל ההדר המסוים) כך:

gcc -Wl,--start-group foo.o bar.o -Wl,--end-group

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

gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map

להלן טבלה של מתגי שורת הפקודה הגנריים המקובלים על ידי מקשר GNU:

@פילה
קרא את אפשרויות שורת הפקודה מ פילה. האפשרויות שנקראו מוכנסות במקום
מקורי @פילה אוֹפְּצִיָה. אם פילה לא קיים, או לא ניתן לקרוא, אז האפשרות
יטופל פשוטו כמשמעו, ולא יוסר.

אפשרויות ב פילה מופרדים על ידי רווח לבן. תו רווח עשוי להיכלל
באופציה על ידי הקיפת כל האופציה במרכאות בודדות או כפולות. כל
תו (כולל קו נטוי אחורי) עשוי להיכלל על ידי הקדמת התו להיות
כלול עם קו נטוי אחורי. ה פילה עשוי בעצמו להכיל @ נוסףפילה אפשרויות; כל
אפשרויות כאלה יעובדו באופן רקורסיבי.

-a מילות מפתח
אפשרות זו נתמכת עבור תאימות HP/UX. ה מילות מפתח הטיעון חייב להיות אחד מהם
המיתרים ארכיון, משותף, או ברירת מחדל. -ארכיון שווה פונקציונלית ל-
-בסטטיק, ושתי מילות המפתח האחרות שוות ערך פונקציונלי ל -בדינמי. זֶה
ניתן להשתמש באפשרות בכל מספר פעמים.

--בְּדִיקָה AUDITLIB
מוסיף AUDITLIB לערך "DT_AUDIT" של הקטע הדינמי. AUDITLIB אינו נבדק
לקיום, וגם לא ישתמש ב-DT_SONAME שצוין בספרייה. אם צוין
מספר פעמים "DT_AUDIT" יכיל רשימה מופרדת בנקודתיים של ממשקי ביקורת
להשתמש. אם המקשר מוצא אובייקט עם ערך ביקורת בזמן חיפוש משותף
ספריות, זה יוסיף ערך "DT_DEPAUDIT" תואם בקובץ הפלט. זֶה
האפשרות היא בעלת משמעות רק בפלטפורמות ELF התומכות בממשק rtld-audit.

-A ארכיטקטורה
--אדריכלות=ארכיטקטורה
במהדורה הנוכחית של ld, אפשרות זו שימושית רק עבור משפחת Intel 960 של
ארכיטקטורות. בתוך זה ld תצורה, ה ארכיטקטורה הטיעון מזהה את
ארכיטקטורה מסוימת במשפחת 960, המאפשרת כמה אמצעי הגנה ושינוי
נתיב חיפוש ארכיון-ספרייה.

מהדורות עתידיות של ld עשוי לתמוך בפונקציונליות דומה עבור ארכיטקטורה אחרת
משפחות.

-b פורמט הכנסה
--פורמט=פורמט הכנסה
ld ניתן להגדיר לתמוך ביותר מסוג אחד של קובץ אובייקט. אם שלך ld is
מוגדר בצורה זו, אתה יכול להשתמש ב- -b אפשרות לציין את הפורמט הבינארי לקלט
קבצי אובייקט העוקבים אחר אפשרות זו בשורת הפקודה. גם כאשר ld מוגדר
כדי לתמוך בפורמטים חלופיים של אובייקטים, אתה בדרך כלל לא צריך לציין זאת, כמו ld
יש להגדיר כך לצפות כפורמט קלט ברירת מחדל לפורמט הרגיל ביותר בכל אחד מהם
מְכוֹנָה. פורמט הכנסה הוא מחרוזת טקסט, השם של פורמט מסוים הנתמך על ידי
ספריות BFD. (תוכל לרשום את הפורמטים הבינאריים הזמינים עם objdump -i.)

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

פורמט ברירת המחדל נלקח ממשתנה הסביבה "GNUTARGET".

אתה יכול גם להגדיר את פורמט הקלט מתוך סקריפט, באמצעות הפקודה "TARGET";

-c קובץ MRI
--mri-script=קובץ MRI
עבור תאימות עם קישורים המיוצרים על ידי MRI, ld מקבל קבצי סקריפט שנכתבו ב-an
שפת פקודה חלופית מוגבלת, המתוארת ב-MRI Compatible Script Files
חלק בתיעוד GNU ld. הצג קבצי סקריפט MRI עם האפשרות -c; להשתמש
מה היא -T אפשרות להפעיל סקריפטים מקשר שנכתבו למטרות כלליות ld scripting
שפה. אם MRI-cmdfile לא קיים, ld מחפש אותו בספריות שצוינו
על ידי כל -L אפשרויות.

-d
-זֶרֶם יָשָׁר
-dp שלוש האפשרויות הללו שוות ערך; מספר טפסים נתמכים לצורך תאימות
עם קישורים אחרים. הם מקצים מקום לסמלים נפוצים גם אם פלט שניתן להזזה
הקובץ מצוין (עם -r). לפקודת הסקריפט "FORCE_COMMON_ALLOCATION" יש את
אותו אפקט.

--דפידיט AUDITLIB
-P AUDITLIB
מוסיף AUDITLIB לערך "DT_DEPAUDIT" של הקטע הדינמי. AUDITLIB לא
נבדק על קיומו, והוא גם לא ישתמש ב-DT_SONAME שצוין בספרייה. אם
שצוין מספר פעמים "DT_DEPAUDIT" יכיל רשימה מופרדת בנקודתיים של ביקורת
ממשקים לשימוש. אפשרות זו היא בעלת משמעות רק בפלטפורמות ELF התומכות ב
ממשק rtld-audit. אפשרות -P מסופקת עבור תאימות Solaris.

-e כניסה
--כניסה=כניסה
השתמש כניסה כסמל המפורש לתחילת הביצוע של התוכנית שלך, במקום
נקודת הכניסה המוגדרת כברירת מחדל. אם אין שם סמל כניסה, המקשר ינסה לעשות זאת
לנתח כניסה כמספר, והשתמש בו ככתובת הכניסה (המספר יהיה
מתפרש בבסיס 10; אתה יכול להשתמש במוביל 0x עבור בסיס 16, או מוביל 0 לבסיס
8).

--exclude-libs lib,lib, ...
מציין רשימה של ספריות ארכיון שמהן אסור שהסמלים יהיו אוטומטיים
מְיוּצָא. שמות הספרייה עשויים להיות מופרדים בפסיקים או נקודתיים. מפרט
"--exclude-libs ALL" לא כולל סמלים בכל ספריות הארכיון מיצוא אוטומטי.
אפשרות זו זמינה רק עבור היציאה הממוקדת i386 PE של המקשר ועבור ELF
יציאות ממוקדות. עבור i386 PE, סמלים הרשומים במפורש בקובץ ‎.def עדיין נשארים
מיוצא, ללא קשר לאפשרות זו. עבור יציאות ממוקדות ELF, סמלים מושפעים מכך
האפשרות תטופל כמוסתרת.

--exclude-modules-for-implib מודול,מודול, ...
מציין רשימה של קובצי אובייקט או חברי ארכיון, שמהם אסור להיות סמלים
מיוצא אוטומטית, אך יש להעתיק אותו בסיטונאי לספריית הייבוא
נוצר במהלך הקישור. שמות המודולים עשויים להיות מופרדים בפסיקים או
נקודתיים, וחייבים להתאים בדיוק לשמות הקבצים שבהם משתמשים ld כדי לפתוח את הקבצים; לארכיון
חברים, זה פשוט שם החבר, אבל עבור קבצי אובייקט השם הרשום חייב
לכלול ולהתאים בדיוק כל נתיב המשמש לציון קובץ הקלט של המקשר
שורת הפקודה. אפשרות זו זמינה רק עבור היציאה הממוקדת i386 PE של
מקשר. סמלים הרשומים במפורש בקובץ .def עדיין מיוצאים, ללא קשר ל
אפשרות זו.

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

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

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

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

שים לב שאפשרות זו היא ספציפית ליציאות ממוקדות ELF. יעדי PE תומכים בדומה
פונקציה לייצא את כל הסמלים מ-DLL או EXE; ראה את התיאור של
--ייצוא-כל-סמלים לְהַלָן.

-EB קישור אובייקטים גדולים. זה משפיע על פורמט הפלט המוגדר כברירת מחדל.

-EL קישור אובייקטים קטנים. זה משפיע על פורמט הפלט המוגדר כברירת מחדל.

-f שם
--עזר=שם
בעת יצירת אובייקט משותף ELF, הגדר את השדה הפנימי DT_AUXILIARY ל-
שם שצוין. זה אומר למקשר הדינמי שטבלת הסמלים של המשותף
יש להשתמש באובייקט כמסנן עזר בטבלת הסמלים של האובייקט המשותף
שם.

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

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

-F שם
--פילטר=שם
בעת יצירת אובייקט משותף ELF, הגדר את השדה הפנימי DT_FILTER לצוין
שֵׁם. זה אומר לקשר הדינמי שטבלת הסמלים של האובייקט המשותף אשר
נוצר, צריך לשמש כמסנן בטבלת הסמלים של האובייקט המשותף
שם.

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

כמה קישורים ישנים יותר השתמשו ב- -F אפשרות לאורך שרשרת כלי הידור עבור
ציון פורמט קובץ אובייקט עבור קבצי אובייקט קלט ופלט כאחד. המקשר של GNU
משתמש במנגנונים אחרים למטרה זו: ה -b, --פוּרמָט, --oformat אפשרויות, ה
פקודת "TARGET" בסקריפטים מקשר, ומשתנה הסביבה "GNUTARGET". הגנו
מקשר יתעלם מה -F אפשרות כאשר לא יוצרים אובייקט משותף ELF.

-fini=שם
בעת יצירת אובייקט הפעלה או משותף של ELF, קרא ל-NAME כאשר קובץ ההפעלה או
אובייקט משותף נפרק, על ידי הגדרת DT_FINI לכתובת של הפונקציה. על ידי
ברירת המחדל, המקשר משתמש ב-"_fini" כפונקציה להתקשר.

-g התעלמו. מסופק עבור תאימות לכלים אחרים.

-G ערך
--gpsize=ערך
הגדר את הגודל המרבי של אובייקטים למיטוב באמצעות אוגר GP ל גודל. זֶה
הוא בעל משמעות רק עבור פורמטים של קבצי אובייקט כגון MIPS ELF התומכים ב-putting large
וחפצים קטנים למקטעים שונים. מתעלמים מכך עבור קובץ אובייקט אחר
פורמטים.

-h שם
-soname=שם
בעת יצירת אובייקט משותף ELF, הגדר את השדה הפנימי DT_SONAME לצוין
שֵׁם. כאשר קובץ הפעלה מקושר לאובייקט משותף שיש לו שדה DT_SONAME,
לאחר מכן כאשר קובץ ההפעלה מופעל, המקשר הדינמי ינסה לטעון את המשותף
האובייקט שצוין בשדה DT_SONAME במקום באמצעות שם הקובץ שניתן לו
המקשר.

-i בצע קישור מצטבר (זהה לאפשרות -r).

-init=שם
בעת יצירת אובייקט הפעלה או משותף של ELF, קרא ל-NAME כאשר קובץ ההפעלה או
אובייקט משותף נטען, על ידי הגדרת DT_INIT לכתובת הפונקציה. על ידי
ברירת המחדל, המקשר משתמש ב-"_init" כפונקציה להתקשר.

-l מפרט שם
--ספרייה=מפרט שם
הוסף את הארכיון או קובץ האובייקט שצוין על ידי מפרט שם לרשימת הקבצים לקישור.
ניתן להשתמש באפשרות זו בכל מספר פעמים. אם מפרט שם הוא מהצורה :שם קובץ, ld
יחפש בנתיב הספרייה קובץ בשם שם הקובץ, אחרת הוא יחפש את
נתיב ספרייה לקובץ שנקרא libnamespec.a.

במערכות התומכות בספריות משותפות, ld עשוי גם לחפש קבצים אחרים מאשר
libnamespec.a. באופן ספציפי, במערכות ELF ו-SunOS, ld יחפש ספרייה עבור
ספריה בשם libnamespec.so לפני חיפוש אחד שנקרא libnamespec.a. (על ידי
מוסכמה, סיומת ".so" מציינת ספרייה משותפת.) שימו לב שהתנהגות זו
אינו חל על :שם קובץ, שתמיד מציין קובץ שנקרא שם הקובץ.

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

ראה -( אפשרות לדרך לאלץ את המקשר לחפש בארכיונים מספר פעמים.

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

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

-L searchdir
--library-path=searchdir
הוסף נתיב searchdir לרשימת השבילים ש ld יחפש ספריות ארכיון ו
ld סקריפטים בקרה. אתה יכול להשתמש באפשרות זו בכל מספר פעמים. המדריכים הם
חיפשו בסדר שבו הם מצוינים בשורת הפקודה. מדריכים
שצוינו בשורת הפקודה נחפש לפני ספריות ברירת המחדל. את כל -L
האפשרויות חלות על כולם -l אפשרויות, ללא קשר לסדר הופעת האפשרויות.
-L אפשרויות לא משפיעות על האופן שבו ld מחפש סקריפט מקשר אלא אם כן -T האפשרות היא
נָקוּב.

If searchdir מתחיל ב-"=", ואז ה-"=" יוחלף ב- שורש קידומת,
נשלט על ידי --sysroot אפשרות, או שצוין כאשר המקשר מוגדר.

ערכת ברירת המחדל של נתיבים שחיפשו (מבלי שצוינו עם -L) תלוי באיזה
מצב אמולציה ld משתמש, ובמקרים מסוימים גם על האופן שבו הוא הוגדר.

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

-m אמולציה
לחקות את אמולציה מקשר. אתה יכול לרשום את האמולציות הזמינות עם
--מִלוּלִי or -V אפשרויות.

אם -m האפשרות אינה בשימוש, האמולציה נלקחת מה-"LDEMULATION"
משתנה סביבה, אם זה מוגדר.

אחרת, אמולציית ברירת המחדל תלויה באופן שבו הוגדר המקשר.

-M
--הדפס-מפה
הדפס מפת קישורים לפלט הסטנדרטי. מפת קישורים מספקת מידע על
קישור, כולל את הדברים הבאים:

· היכן קובצי אובייקט ממופים לזיכרון.

· כיצד מוקצים סמלים נפוצים.

· כל חברי הארכיון הכלולים בקישור, עם אזכור של הסמל אשר
גרם להבאת חבר הארכיון.

· הערכים המוקצים לסמלים.

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

foo = 1
פו = פו * 4
foo = foo + 8

יפיק את הפלט הבא במפת הקישורים אם -M נעשה שימוש באפשרות:

0x00000001 foo = 0x1
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)

לִרְאוֹת ביטויים למידע נוסף על ביטויים בתסריטי קישור.

-n
--nmagic
כבה את יישור הדפים של קטעים, והשבת את הקישור לספריות משותפות. אם
פורמט הפלט תומך במספרי קסם בסגנון יוניקס, סמן את הפלט כ"NMAGIC".

-N
--אומגי
הגדר את מקטעי הטקסט והנתונים כך שיהיו ניתנים לקריאה ולכתיבה. כמו כן, אין ליישר דפים
מקטע הנתונים, והשבת את הקישור נגד ספריות משותפות. אם פורמט הפלט
תומך במספרי קסם בסגנון יוניקס, סמן את הפלט כ"OMAGIC". הערה: למרות שא
קטע טקסט הניתן לכתיבה מותר עבור יעדי PE-COFF, הוא אינו תואם את
מפרט הפורמט שפורסם על ידי Microsoft.

--לא-אומגי
אפשרות זו שוללת את רוב ההשפעות של -N אוֹפְּצִיָה. זה מגדיר את קטע הטקסט ל
להיות לקריאה בלבד, ומאלץ את קטע הנתונים להיות מיושר דף. שימו לב - אפשרות זו עושה זאת
לא לאפשר קישור נגד ספריות משותפות. להשתמש -בדינמי לזה.

-o תפוקה
--פלט=תפוקה
השתמש תפוקה כשם התוכנית שהופקה על ידי ld; אם אפשרות זו אינה
שצוין, השם א.אאוט משמש כברירת מחדל. פקודת הסקריפט "OUTPUT" יכולה גם
ציין את שם קובץ הפלט.

-O רָמָה
If רָמָה הוא ערך מספרי הגדול מאפס ld מייעל את הפלט. זה עלול
לוקח הרבה יותר זמן ולכן כנראה צריך להפעיל אותו רק לגמר
בינארי. כרגע אפשרות זו משפיעה רק על יצירת ספריות משותפות של ELF. עתיד
שחרורים של המקשר עשויים לעשות יותר שימוש באפשרות זו. גם כרגע אין
הבדל בהתנהגות המקשר עבור ערכים שונים שאינם אפס של אפשרות זו.
שוב זה עשוי להשתנות עם מהדורות עתידיות.

--מצב דחיפה
--מצב דחיפה מאפשר לשמר את המצב הנוכחי של הדגלים השולטים ב
טיפול בקבצי קלט כך שניתן יהיה לשחזר את כולם עם אחד מתאים
--מצב פופ אוֹפְּצִיָה.

האופציות הנכללות הן: -בדינמי, -בסטטיק, -דנ, -די, -call_shared,
-לא_משותף, -סטָטִי, -N, -n, - ארכיון שלם, --אין-ארכיון שלם, -r, -אור,
--copy-dt-needed-entries, --אין-העתק-dt-needed-entries, --לפי צורך, --לא-לפי הצורך,
ו -a.

יעד אחד עבור אפשרות זו הם מפרטים עבור pkg-config. בשימוש עם ה
--libs אפשרות כל הספריות הדרושות רשומות ואז אולי מקושרות אליהן
כל הזמן. עדיף להחזיר משהו בצורה הבאה:

-Wl,--push-state,--לפי הצורך -libone -libtwo -Wl,--pop-state

מבטל את ההשפעה של --push-state, משחזר את הערכים הקודמים של הדגלים השולטים
טיפול בקבצי קלט.

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

אפשרות זו נתמכת כרגע רק בפלטפורמות ELF.

--כוח דינמי
הכריח את קובץ הפלט לחלקים דינמיים. אפשרות זו ספציפית ל-VxWorks
מטרות.

-r
--ניתן להעברה
צור פלט שניתן להזזה --- כלומר, צור קובץ פלט שיכול בתורו לשמש
קלט ל ld. זה נקרא לעתים קרובות חלקית מְקַשֵׁר. כתופעת לוואי, בסביבות
התומכים במספרי קסם סטנדרטיים של יוניקס, אפשרות זו מגדירה גם את קובץ הפלט
מספר קסם ל-"OMAGIC". אם אפשרות זו לא צוינה, קובץ מוחלט הוא
מיוצר. בעת קישור תוכניות C++, אפשרות זו יצטרך לֹא לפתור הפניות ל
קונסטרוקטורים; כדי לעשות זאת, השתמש -אור.

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

אפשרות זו עושה את אותו הדבר כמו -i.

-R שם הקובץ
--רק-סמלים=שם הקובץ
קרא את שמות הסמלים ואת הכתובות שלהם שם הקובץ, אך אל תעביר אותו או תכלול אותו
זה בפלט. זה מאפשר לקובץ הפלט שלך להתייחס באופן סימבולי למוחלט
מיקומי זיכרון המוגדרים בתוכניות אחרות. אתה יכול להשתמש באפשרות זו יותר מ
פַּעַם.

לתאימות עם קישורי ELF אחרים, אם ה -R אחרי האפשרות מופיעה ספרייה
שם, במקום שם קובץ, הוא מטופל כ- מסלול אוֹפְּצִיָה.

-s
סטריפ-הכל
השמט את כל מידע הסמלים מקובץ הפלט.

-S
---strip-debug
השמט מידע על סמל ניפוי הבאגים (אך לא את כל הסמלים) מקובץ הפלט.

-t
--זֵכֶר
הדפס את שמות קבצי הקלט בשם ld מעבד אותם.

-T קובץ script
--script=קובץ script
השתמש קובץ script בתור התסריט המקשר. סקריפט זה מחליף ldסקריפט מקשר ברירת המחדל של
(במקום להוסיף על זה), אז קובץ הפקודה חייב לציין את כל הדרוש
תאר את קובץ הפלט. אם קובץ script לא קיים בספרייה הנוכחית,
"ld" מחפש אותו בספריות שצוינו באחת מהקודמות -L אפשרויות. מרובות
-T אפשרויות מצטברות.

-dT קובץ script
--default-script=קובץ script
השתמש קובץ script כסקריפט המקשר המוגדר כברירת מחדל.

אפשרות זו דומה ל- --תַסרִיט אפשרות מלבד שעיבוד הסקריפט הוא
נדחה עד לאחר עיבוד שאר שורת הפקודה. זה מאפשר
אפשרויות המוצבות לאחר ה ---default-script אפשרות בשורת הפקודה להשפיע על
התנהגות של סקריפט המקשר, שיכולה להיות חשובה כאשר שורת הפקודה המקשרת
לא ניתן לשלוט ישירות על ידי המשתמש. (למשל בגלל ששורת הפקודה נמצאת
נבנה על ידי כלי אחר, כגון gcc).

-u סמל
--לא מוגדר=סמל
להכריח סמל להזין בקובץ הפלט כסמל לא מוגדר. פעולה זו עשויה,
לדוגמה, הפעל קישור של מודולים נוספים מספריות סטנדרטיות. -u יכול להיות
חוזר על עצמו עם ארגומנטים שונים של אופציות כדי להזין סמלים לא מוגדרים נוספים. זֶה
אפשרות שווה לפקודת הסקריפט המקשר "EXTERN".

אם אפשרות זו משמשת כדי לאלץ מודולים נוספים להימשך לקישור,
ואם זו שגיאה שהסמל נשאר לא מוגדר, אז האפשרות
--דרוש-מוגדר צריך להשתמש במקום.

--require-defined=סמל
דרוש זאת סמל מוגדר בקובץ הפלט. אפשרות זו זהה לאופציה
--לא מוגדר אלא שאם סמל אינו מוגדר בקובץ הפלט ואז המקשר
יוציא שגיאה ויצא. ניתן להשיג אותו אפקט בסקריפט מקשר על ידי
באמצעות "EXTERN", "ASSERT" ו-"DEFINED" ביחד. ניתן להשתמש באפשרות זו במספר רב
פעמים כדי לדרוש סמלים נוספים.

-אור עבור כל דבר אחר מלבד תוכניות C++, אפשרות זו שווה ערך ל -r: זה מייצר
פלט שניתן למיקום מחדש --- כלומר, קובץ פלט שיכול בתורו לשמש כקלט עבור ld. כאשר
קישור תוכניות C++, -אור עושה לפתור הפניות לבנאים, בניגוד -r. זה עושה
לא עובד לשימוש -אור על קבצים שבעצמם היו מקושרים אליהם -אור; פעם ה
נבנה טבלת קונסטרוקטור, לא ניתן להוסיף אותה. להשתמש -אור רק עבור האחרון
קישור חלקי, ו -r עבור האחרים.

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

MODE יכול להיות כל אחד מהערכים הבאים:

"מקום"
קטעים יתומים ממוקמים בקטע פלט מתאים בעקבות האסטרטגיה
מתואר ב יתום סעיפים. האפשרות --ייחודי משפיע גם על צורת הקטעים
להציב.

"להשליך"
כל החלקים היתומים נמחקים, על ידי הצבתם ב- /להשליך/ סָעִיף.

"לְהַזהִיר"
המקשר יציב את הקטע היתום כמו ל"מקום" וגם יוציא אזהרה.

"שְׁגִיאָה"
המקשר ייצא עם שגיאה אם ​​יימצא קטע יתום כלשהו.

ברירת המחדל אם --טיפול יתומים אינו נתון הוא "מקום".

--ייחודי[=SECTION]
יוצר קטע פלט נפרד עבור כל התאמה של קטע קלט SECTION, או אם
תו כללי אופציונלי SECTION ארגומנט חסר, עבור כל קטע קלט יתום. א
קטע יתום הוא קטע שאינו מוזכר במפורש בסקריפט מקשר. אתה יכול להשתמש בזה
אפשרות מספר פעמים בשורת הפקודה; זה מונע מיזוג רגיל של קלט
קטעים בעלי אותו שם, עוקפים הקצאות קטעי פלט בסקריפט מקשר.

-v
--גִרְסָה
-V הצג את מספר הגרסה עבור ld. ה -V האפשרות מפרטת גם את האמולציות הנתמכות.

-x
--זרוק-הכל
מחק את כל הסמלים המקומיים.

-X
--זרוק-מקומיים
מחק את כל הסמלים המקומיים הזמניים. (סמלים אלה מתחילים במקומון ספציפי למערכת
קידומות תווית, בדרך כלל .L למערכות ELF או L עבור מערכות a.out מסורתיות.)

-y סמל
--trace-symbol=סמל
הדפס את השם של כל קובץ מקושר שבו סמל מופיע. אפשרות זו עשויה להינתן
כל מספר פעמים. במערכות רבות יש צורך להוסיף קו תחתון.

אפשרות זו שימושית כאשר יש לך סמל לא מוגדר בקישור שלך אך אינך יודע
מאיפה ההתייחסות מגיעה.

-Y נתיב
להוסיף נתיב לנתיב חיפוש ברירת המחדל של הספרייה. אפשרות זו קיימת עבור Solaris
תאימות.

-z מילות מפתח
מילות המפתח המוכרות הן:

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

defs
לא מאפשר סמלים לא מוגדרים בקובצי אובייקט. סמלים לא מוגדרים בשיתוף
ספריות עדיין מותרות.

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

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

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

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

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

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

מולדעפס
מאפשר מספר הגדרות.

נוקומברלוק
משבית שילוב של קטעי רילוק מרובים.

nocopyreloc
השבת משתני .dynbss שנוצרו על ידי קישור המשמשים במקום משתנים שהוגדרו ב
ספריות משותפות. עלול לגרום להעברת טקסט דינמית.

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

nodelete
מסמן שהאובייקט לא אמור להיפרק בזמן ריצה.

nodlopen
מסמן את האובייקט שאינו זמין ל"dlopen".

nodump
מסמן את האובייקט שלא ניתן לזרוק על ידי "dldump".

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

טֶקסט
התייחס ל-DT_TEXTREL באובייקט משותף כשגיאה.

אין טקסט
אל תתייחס ל-DT_TEXTREL באובייקט משותף כשגיאה.

textoff
אל תתייחס ל-DT_TEXTREL באובייקט משותף כשגיאה.

נורלרו
אל תיצור כותרת מקטע ELF "PT_GNU_RELRO" באובייקט.

עַכשָׁיו בעת יצירת ספרייה הפעלה או משותפת, סמן אותה כדי לדעת את הדינמיקה
מקשר כדי לפתור את כל הסמלים כאשר התוכנית מופעלת, או כאשר משותף
הספרייה מקושרת לשימוש ב-dlopen, במקום לדחות את פתרון קריאת הפונקציה
עד לנקודה שבה נקראת הפונקציה לראשונה.

מקור
מסמן שהאובייקט עשוי להכיל $ORIGIN.

relro
צור כותרת מקטע ELF "PT_GNU_RELRO" באובייקט.

max-page-size=ערך
הגדר את גודל העמוד המרבי של האמולציה ל ערך.

גודל עמוד משותף=ערך
הגדר את גודל העמוד הנפוץ של האמולציה ל ערך.

מחסנית =ערך
ציין גודל מחסנית עבור בקטע ELF "PT_GNU_STACK". ציון רצון אפס
לעקוף כל ברירת מחדל של יצירת מקטע "PT_GNU_STACK" שאינו בגודל אפס.

bndplt
צור תמיד קידומת BND בערכי PLT. נתמך עבור Linux/x86_64.

נתונים ללא הגנה
אל תתייחס לסמל נתונים מוגן כאל חיצוני בעת בניית ספרייה משותפת. זֶה
האפשרות עוקפת את ברירת המחדל האחורית של המקשר. זה יכול לשמש כדי לעקוף שגוי
רילוקיישן נגד סמלי נתונים מוגנים שנוצרו על ידי מהדר. עדכונים על
סמלי נתונים מוגנים על ידי מודול אחר אינם גלויים למשותף המתקבל
סִפְרִיָה. נתמך עבור i386 ו-x86-64.

call-nop=prefix-addr
call-nop=prefix-nop
call-nop=סיומת-nop
call-nop=prefix-בייט
call-nop=suffix-בייט
ציין את ריפוד "NOP" של 1 בתים בעת הפיכת קריאה עקיפה לשיחה מקומית
פונקציה מוגדרת, foo, דרך חריץ ה-GOT שלה. call-nop=prefix-addr יוצר "0x67
תתקשר פו". call-nop=prefix-nop יוצר "0x90 call foo". call-nop=סיומת-nop
יוצר "call foo 0x90". call-nop=prefix-בייט מייצר"בייט שיחה פו".
call-nop=suffix-בייט מייצר "call foo בייט". נתמך עבור i386 ו-x86_64.

מתעלמים ממילות מפתח אחרות בגלל תאימות Solaris.

-( ארכיון -)
--קבוצה-התחלה ארכיון --קבוצת קצה
ארכיון צריכה להיות רשימה של קבצי ארכיון. הם עשויים להיות קבצים מפורשים
שמות, או -l אפשרויות.

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

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

--accept-unknown-input-arch
--no-accept-unknown-input-arch
אומר למקשר לקבל קבצי קלט שלא ניתן לזהות את הארכיטקטורה שלהם. ה
ההנחה היא שהמשתמש יודע מה הוא עושה ורוצה בכוונה לקשר
בקבצי קלט לא ידועים אלה. זו הייתה התנהגות ברירת המחדל של המקשר, לפני כן
גרסה 2.14. התנהגות ברירת המחדל מגרסה 2.14 ואילך היא דחיית קלט כזה
קבצים, וכך ה --accept-unknown-input-arch נוספה אפשרות לשחזור הישן
התנהגות.

--לפי צורך
--לא-לפי הצורך
אפשרות זו משפיעה על תגי ELF DT_NEEDED עבור ספריות דינמיות המוזכרות בפקודה
קו אחרי ה --לפי צורך אוֹפְּצִיָה. בדרך כלל המקשר יוסיף תג DT_NEEDED עבור
כל ספרייה דינמית המוזכרת בשורת הפקודה, ללא קשר לשאלה אם הספרייה
אכן נחוץ או לא. --לפי צורך גורם לתג DT_NEEDED להיפלט רק עבור
ספרייה ש at זֶה נקודה in מה היא קישור עונה על סמל לא מוגדר לא חלש
הפניה מקובץ אובייקט רגיל או, אם הספרייה לא נמצאת ב-DT_NEEDED
רשימות של ספריות נחוצות אחרות, הפניה לסמל לא-מוגדר לא חלש מאחר
דרושה ספרייה דינמית. קבצי אובייקט או ספריות המופיעים בשורת הפקודה לאחר
הספרייה המדוברת אינה משפיעה על השאלה אם הספרייה נתפסת כנדרש. זה
בדומה לכללים לחילוץ קבצי אובייקט מארכיונים. --לא-לפי הצורך
משחזר את התנהגות ברירת המחדל.

--הוסף-דרוש
--אין צורך להוסיף
שתי האפשרויות הללו הוצאו משימוש בגלל הדמיון של שמותיהן ל-
--לפי צורך ו --לא-לפי הצורך אפשרויות. הם הוחלפו ב
--copy-dt-needed-entries ו --אין-העתק-dt-needed-entries.

-לִטעוֹן מילות מפתח
התעלמות מאפשרות זו עבור תאימות SunOS.

-בדינמי
-די
-call_shared
קישור נגד ספריות דינמיות. זה משמעותי רק בפלטפורמות שעבורן שותפו
ספריות נתמכות. אפשרות זו היא בדרך כלל ברירת המחדל בפלטפורמות כאלה. ה
גרסאות שונות של אפשרות זו מיועדות לתאימות למערכות שונות. אתה יכול
השתמש באפשרות זו מספר פעמים בשורת הפקודה: היא משפיעה על חיפוש הספרייה
-l אפשרויות הבאות אחריו.

-Bgroup
הגדר את הדגל "DF_1_GROUP" בערך "DT_FLAGS_1" בקטע הדינמי. זֶה
גורם למקשר של זמן הריצה לטפל בחיפושים באובייקט זה והתלות שלו
בוצע רק בתוך הקבוצה. --unresolved-symbols=report-all משתמע. זֶה
האפשרות היא בעלת משמעות רק בפלטפורמות ELF שתומכות בספריות משותפות.

-בסטטיק
-דנ
-לא_משותף
-סטָטִי
אין לקשר נגד ספריות משותפות. זה משמעותי רק בפלטפורמות שעבורן
ספריות משותפות נתמכות. הגרסאות השונות של אפשרות זו מיועדות
תאימות למערכות שונות. אתה יכול להשתמש באפשרות זו מספר פעמים ב-
שורת פקודה: זה משפיע על חיפוש הספרייה -l אפשרויות הבאות אחריו. זֶה
אפשרות מרמזת גם --unresolved-symbols=report-all. ניתן להשתמש באפשרות זו עם
-מְשׁוּתָף. משמעות הדבר היא שנוצרת ספרייה משותפת אך כל ה
יש לפתור את ההפניות החיצוניות של הספרייה על ידי שליפת ערכים מתוך סטטי
ספריות.

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

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

--dynamic-list=דינמי-רשימה-קובץ
ציין את השם של קובץ רשימה דינמית למקשר. זה משמש בדרך כלל כאשר
יצירת ספריות משותפות לציון רשימה של סמלים גלובליים שההפניות שלהם
לא אמור להיות כבול להגדרה בתוך הספרייה המשותפת, או יצירה
קובצי הפעלה מקושרים דינמית כדי לציין רשימה של סמלים שיש להוסיף אליהם
טבלת הסמלים בקובץ ההפעלה. אפשרות זו היא בעלת משמעות רק בפלטפורמות ELF
התומכים בספריות משותפות.

הפורמט של הרשימה הדינמית זהה לצומת הגרסה ללא היקף וצומת
שֵׁם. לִרְאוֹת גִרְסָה לקבלת מידע נוסף.

--דינמי-רשימה-נתונים
כלול את כל סמלי הנתונים הגלובליים לרשימה הדינמית.

--dynamic-list-cpp-new
ספק את הרשימה הדינמית המובנית לאופרטור C++ חדש ומחק. זה שימושי בעיקר
לבניית libstdc++ משותף.

--dynamic-list-cpp-typeinfo
ספק את הרשימה הדינמית המובנית לזיהוי סוג זמן ריצה של C++.

--קטעי בדיקה
--מקטעים ללא בדיקה
שואל המקשר לֹא כדי לבדוק כתובות מדור לאחר שהוקצו כדי לראות אם
יש חפיפות כלשהן. בדרך כלל המקשר יבצע את הבדיקה הזו, ואם הוא מוצא
כל חפיפה זה יפיק הודעות שגיאה מתאימות. המקשר כן יודע על, ו
אכן מתחשב בקטעים בשכבות-על. ניתן לשחזר את התנהגות ברירת המחדל
באמצעות מתג שורת הפקודה --קטעי בדיקה. חפיפת מקטעים אינה בדרך כלל
בדק אם קיימים קישורים הניתנים להעברה. אתה יכול לכפות בדיקה במקרה זה על ידי שימוש ב-
--קטעי בדיקה אוֹפְּצִיָה.

--copy-dt-needed-entries
--אין-העתק-dt-needed-entries
אפשרות זו משפיעה על הטיפול בספריות דינמיות שאליהם מתייחסים תגיות DT_NEEDED
בתוך ספריות דינמיות של ELF המוזכרות בשורת הפקודה. בדרך כלל המקשר לא
הוסף תג DT_NEEDED לקובץ הבינארי של הפלט עבור כל ספרייה המוזכרת בתג DT_NEEDED
בספריית קלט דינמית. עם --copy-dt-needed-entries המצוין בפקודה
עם זאת, כל ספריות דינמיות שעוקבות אחריה יקבלו את ערכי ה-DT_NEEDED שלהן
הוסיף. ניתן לשחזר את התנהגות ברירת המחדל באמצעות --אין-העתק-dt-needed-entries.

אפשרות זו משפיעה גם על הרזולוציה של סמלים בספריות דינמיות.
עם --copy-dt-needed-entries ספריות דינמיות המוזכרות בשורת הפקודה יהיו
חיפשו באופן רקורסיבי, בעקבות תגיות DT_NEEDED שלהם לספריות אחרות, על מנת
לפתור סמלים הנדרשים על ידי הפלט הבינארי. עם הגדרת ברירת המחדל לעומת זאת
חיפוש של ספריות דינמיות העוקבות אחריו יפסיק עם הספרייה הדינמית
עצמו. לא יעברו קישורים של DT_NEEDED כדי לפתור סמלים.

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

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

--לא-להגדיר-נפוץ
אפשרות זו מונעת הקצאת כתובות לסמלים נפוצים. התסריט
לפקודה "INHIBIT_COMMON_ALLOCATION" יש את אותו אפקט.

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

--defsym=סמל=ביטוי
צור סמל גלובלי בקובץ הפלט, המכיל את הכתובת המוחלטת שניתנה על ידי
ביטוי. תוכל להשתמש באפשרות זו פעמים רבות ככל שיידרש כדי להגדיר מרובה
סמלים בשורת הפקודה. צורה מוגבלת של חשבון נתמכת עבור
ביטוי בהקשר זה: אתה יכול לתת קבוע הקסדצימלי או את השם של an
סמל קיים, או השתמש ב-"+" ו-"-" כדי להוסיף או להחסיר קבועים הקסדצימליים או
סמלים. אם אתה צריך ביטויים משוכללים יותר, שקול להשתמש בפקודה מקשר
שפה מתוך תסריט. הערה: לא צריך להיות רווח לבן ביניהם סמל, ה
סימן שווה ("="), ו ביטוי.

--demangle[=סגנון]
--ללא התפלגות
אפשרויות אלה קובעות אם יש לנקות את שמות הסמלים בהודעות שגיאה ואחרות
תְפוּקָה. כאשר נאמר למקשר להתפרק, הוא מנסה להציג שמות סמלים ב-a
אופנה קריא: זה מסיר קווים תחתונים מובילים אם הם משמשים את קובץ האובייקטים
פורמט, וממיר שמות סמלים מעוותים ב-C++ לשמות קריאים למשתמש. שונה
למהדרים יש סגנונות מננגל שונים. הטיעון האופציונלי של סגנון ה-demangeling יכול
לשמש לבחירת סגנון דה-manging מתאים עבור המהדר שלך. המקשר יעשה זאת
demangle כברירת מחדל אלא אם משתנה הסביבה COLLECT_NO_DEMANGLE מוגדר. אלה
ניתן להשתמש באפשרויות כדי לעקוף את ברירת המחדל.

-Iפילה
--dynamic-linker=פילה
הגדר את שם המקשר הדינמי. זה משמעותי רק בעת יצירת
קובצי הפעלה של ELF מקושרים דינמית. ברירת המחדל של הקישור הדינמי הוא בדרך כלל תקין;
אל תשתמש בזה אלא אם כן אתה יודע מה אתה עושה.

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

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

--force-exe-סיומת
ודא שלקובץ פלט יש סיומת .exe.

אם לקובץ פלט מקושר מלא שנבנה בהצלחה אין ".exe" או ".dll"
סיומת, אפשרות זו מאלצת את המקשר להעתיק את קובץ הפלט לאחד בעל אותו שם
עם סיומת ".exe". אפשרות זו שימושית בעת שימוש בקבצי Unix ללא שינוי ב-a
מארח Microsoft Windows, שכן גרסאות מסוימות של Windows לא יפעילו תמונה אלא אם כן
מסתיים בסיומת ".exe".

--gc-sections
--no-gc-sections
אפשר איסוף אשפה של קטעי קלט שאינם בשימוש. מתעלמים מזה במטרות שכן
לא תומך באפשרות זו. התנהגות ברירת המחדל (של אי ביצוע זבל זה
אוסף) ניתן לשחזר על ידי ציון --no-gc-sections בשורת הפקודה. הערה
שאיסוף אשפה עבור יעדים בפורמט COFF ו-PE נתמך, אבל ה
היישום נחשב כיום לניסוי.

--gc-sections מחליט באילו קטעי קלט נעשה שימוש על ידי בחינת סמלים ו
רילוקיישן. הקטע המכיל את סמל הכניסה וכל הקטעים המכילים
סמלים לא מוגדרים בשורת הפקודה יישמרו, וכך גם קטעים המכילים
סמלים אליהם מתייחסים אובייקטים דינמיים. שימו לב שכאשר בונים ספריות משותפות, ה
המקשר חייב להניח שכל סמל גלוי מופנה. ברגע זה הסט הראשוני של
קטעים נקבעו, המקשר מסמן באופן רקורסיבי כל קטע בשימוש
התייחסות להעברתם. לִרְאוֹת --כְּנִיסָה ו --לא מוגדר.

ניתן להגדיר אפשרות זו בעת ביצוע קישור חלקי (מופעל עם אפשרות -r). בזה
במקרה ששורש הסמלים שנשמר חייב להיות מצוין במפורש על ידי an --כְּנִיסָה or
--לא מוגדר אפשרות או על ידי פקודת "ENTRY" בסקריפט המקשר.

--print-gc-sections
--no-print-gc-sections
רשום את כל הסעיפים שהוסרו על ידי איסוף אשפה. הרישום מודפס על stderr.
אפשרות זו יעילה רק אם איסוף אשפה הופעל באמצעות ה
--gc-sections) אפשרות. התנהגות ברירת המחדל (של אי פירוט הקטעים שהם
הוסר) ניתן לשחזר על ידי ציון --no-print-gc-sections בשורת הפקודה.

--הדפס-פלט-פורמט
הדפס את השם של פורמט הפלט המוגדר כברירת מחדל (אולי מושפע משורת פקודה אחרת
אפשרויות). זוהי המחרוזת שתופיע בסקריפט מקשר "OUTPUT_FORMAT".
פקודה.

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

אזור זיכרון בשימוש גודל אזור גודל %age בשימוש
ROM: 256 KB 1 MB 25.00%
זיכרון RAM: 32 B 2 GB 0.00%

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

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

-מפה=קובץ map
הדפס מפת קישורים לקובץ קובץ map. ראה את התיאור של -M אפשרות, למעלה.

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

--לא-לא מוגדר
-z defs
דווח על הפניות לא פתורות לסמלים מקובצי אובייקט רגילים. זה נעשה גם אם
המקשר יוצר ספרייה משותפת לא סמלית. המתג
--[no-]allow-shlib-undefined שולט בהתנהגות לדיווח לא פתור
הפניות שנמצאו בספריות משותפות המקושרות בהן.

--אפשר הגדרה מרובה
-z מולדעפס
בדרך כלל כאשר סמל מוגדר מספר פעמים, המקשר ידווח על קטלניות
שְׁגִיאָה. אפשרויות אלו מאפשרות מספר הגדרות וההגדרה הראשונה תשמש.

--allow-shlib-undefined
--no-allow-shlib-undefined
מאפשר או לא מתיר סמלים לא מוגדרים בספריות משותפות. מתג זה דומה ל
--לא-לא מוגדר אלא שזה קובע את ההתנהגות כאשר הסמלים הלא מוגדרים הם
בספרייה משותפת ולא בקובץ אובייקט רגיל. זה לא משפיע על איך
סמלים לא מוגדרים בקובצי אובייקט רגילים מטופלים.

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

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

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

· יש כמה מערכות הפעלה, למשל BeOS ו-HPA, שבהן מופיעים סמלים לא מוגדרים
ספריות משותפות הן נורמליות.

ליבת BeOS למשל מתקנת ספריות משותפות בזמן טעינה לבחירה
הפונקציה המתאימה ביותר לארכיטקטורה הנוכחית. זה
משמש, למשל, לבחירה דינמית של פונקציית memset מתאימה.

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

--default-symver
צור והשתמש בגרסת סמל ברירת מחדל (ה-soname) עבור סמלים מיוצאים ללא גרסאות.

--default-imported-symver
צור והשתמש בגרסת סמל ברירת מחדל (ה-soname) עבור סמלים מיובאים ללא גרסה.

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

--no-warn-search-mismatch
בדרך כלל ld ייתן אזהרה אם הוא מוצא ספרייה לא תואמת במהלך ספרייה
לחפש. אפשרות זו משתיקה את האזהרה.

--אין-ארכיון שלם
כבה את האפקט של - ארכיון שלם אפשרות לקבצי ארכיון הבאים.

--noinhibit-exec
שמור את קובץ הפלט להפעלה בכל פעם שהוא עדיין שמיש. בדרך כלל, המקשר
לא יפיק קובץ פלט אם הוא נתקל בשגיאות במהלך תהליך הקישור; זה
יוצא מבלי לכתוב קובץ פלט כאשר הוא מוציא שגיאה כלשהי.

-נוסטדליב
חפש רק ספריות ספריות שצוינו במפורש בשורת הפקודה. סִפְרִיָה
ספריות המצוינות בסקריפטים מקשר (כולל סקריפטים מקשר שצוינו ב-
שורת הפקודה) מתעלמים.

--oformat=פורמט פלט
ld ניתן להגדיר לתמוך ביותר מסוג אחד של קובץ אובייקט. אם שלך ld is
מוגדר בצורה זו, אתה יכול להשתמש ב- --oformat אפשרות לציין את הפורמט הבינארי עבור
קובץ אובייקט הפלט. גם כאשר ld מוגדר לתמוך באובייקט חלופי
פורמטים, אתה בדרך כלל לא צריך לציין זאת, כמו ld צריך להיות מוגדר לייצר
כפורמט פלט ברירת מחדל הפורמט הרגיל ביותר בכל מכונה. פורמט פלט הוא
מחרוזת טקסט, שם של פורמט מסוים הנתמך על ידי ספריות BFD. (אתה יכול
רשום את הפורמטים הבינאריים הזמינים עם objdump -i.) פקודת הסקריפט
"OUTPUT_FORMAT" יכול גם לציין את פורמט הפלט, אך אפשרות זו עוקפת אותו.

-פַּאִי
--תמונה להפעלה
צור קובץ הפעלה בלתי תלוי בעמדה. זה נתמך כרגע רק ב-ELF
פלטפורמות. קובצי הפעלה עצמאיים של מיקום דומים לספריות משותפות בכך
הם מועברים על ידי המקשר הדינמי לכתובת הווירטואלית שמערכת ההפעלה בוחרת עבורה
אותם (שיכולים להשתנות בין הפניות). כמו קובצי הפעלה רגילים מקושרים דינמית
ניתן להפעיל אותם ולא ניתן לעקוף אותם על סמלים המוגדרים בקובץ ההפעלה
ספריות משותפות.

-qmagic
התעלמות מאפשרות זו עבור תאימות לינוקס.

-Qy התעלמות מאפשרות זו עבור תאימות SVR4.

--לְהִרָגַע
--לא-להירגע
אפשרות עם אפקטים תלויי מכונה. אפשרות זו נתמכת רק בכמה בודדים
מטרות.

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

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

בפלטפורמות שבהן זה לא נתמך, --לְהִרָגַע מתקבל, אך מתעלם.

על פלטפורמות איפה --לְהִרָגַע מתקבלת האפשרות --לא-להירגע ניתן להשתמש כדי להשבית
העתיד.

--retain-symbols-file=שם הקובץ
תשמור רק הסמלים הרשומים בקובץ שם הקובץ, לזרוק את כל השאר. שם הקובץ
הוא פשוט קובץ שטוח, עם שם סמל אחד בכל שורה. אפשרות זו היא במיוחד
שימושי בסביבות (כגון VxWorks) שבהן טבלת סמלים גלובלית גדולה
הצטבר בהדרגה, כדי לשמור על זיכרון זמן ריצה.

--retain-symbols-file עושה לֹא לזרוק סמלים לא מוגדרים, או סמלים הדרושים עבור
רילוקיישן.

אתה יכול רק לציין --retain-symbols-file פעם אחת בשורת הפקודה. זה עוקף -s
ו -S.

-rpath=dir
הוסף ספריה לנתיב החיפוש של ספריית זמן הריצה. זה משמש בעת קישור ELF
ניתן להפעלה עם אובייקטים משותפים. את כל מסלול טיעונים משורשרים ומועברים אל
מקשר זמן הריצה, המשתמש בהם כדי לאתר אובייקטים משותפים בזמן ריצה. ה מסלול
האפשרות משמשת גם בעת איתור אובייקטים משותפים הדרושים לאובייקטים משותפים
נכלל במפורש בקישור; ראה את התיאור של ה -rpath-link אוֹפְּצִיָה. אם
מסלול אינו בשימוש בעת קישור קובץ הפעלה של ELF, תוכן הסביבה
המשתנה "LD_RUN_PATH" ישמש אם הוא מוגדר.

מסלול ניתן להשתמש באפשרות גם ב-SunOS. כברירת מחדל, ב-SunOS, המקשר יעשה זאת
יוצרים נתיב חיפוש בזמן ריצה מתוך כל -L אפשרויות שהוא נתון. אם מסלול אוֹפְּצִיָה
בשימוש, נתיב החיפוש בזמן הריצה יווצר אך ורק באמצעות ה מסלול אפשרויות,
מתעלם מה -L אפשרויות. זה יכול להיות שימושי בעת שימוש ב-gcc, מה שמוסיף הרבה -L
אפשרויות שעשויות להיות במערכות קבצים מותקנות ב-NFS.

לתאימות עם קישורי ELF אחרים, אם ה -R אחרי האפשרות מופיעה ספרייה
שם, במקום שם קובץ, הוא מטופל כ- מסלול אוֹפְּצִיָה.

-rpath-link=dir
בעת שימוש ב-ELF או ב-SunOS, ספרייה משותפת אחת עשויה לדרוש אחרת. זה קורה כאשר א
קישור "ld -shared" כולל ספרייה משותפת כאחד מקבצי הקלט.

כאשר המקשר נתקל בתלות כזו בעת ביצוע לא משותף, שאינו ניתן להעברה
קישור, הוא ינסה אוטומטית לאתר את הספרייה המשותפת הנדרשת ולכלול אותה
בקישור, אם הוא לא נכלל במפורש. במקרה כזה, ה -rpath-link אוֹפְּצִיָה
מציין את קבוצת הספריות הראשונה לחיפוש. ה -rpath-link אפשרות עשויה לציין
רצף של שמות ספריות או על ידי ציון רשימה של שמות מופרדים על ידי
נקודתיים, או על ידי הופעה מספר פעמים.

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

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

1. כל ספריות שצוינו על ידי -rpath-link אפשרויות.

2. כל ספריות שצוינו על ידי מסלול אפשרויות. ההבדל בין מסלול ו
-rpath-link זה ספריות שצוין על ידי מסלול אפשרויות כלולות ב
בר הפעלה ובשימוש בזמן ריצה, בעוד ש- -rpath-link האפשרות יעילה בלבד
בזמן קישור. מחפש מסלול בדרך זו נתמך רק על ידי קישורים מקומיים ו
מקשרים צולבים שהוגדרו עם --עם-sysroot אוֹפְּצִיָה.

3. על מערכת ELF, עבור קישורים מקומיים, אם מסלול ו -rpath-link אפשרויות היו
לא בשימוש, חפש את התוכן של משתנה הסביבה "LD_RUN_PATH".

4. ב-SunOS, אם מסלול האפשרות לא הייתה בשימוש, חפש בכל ספריות שצוינו
באמצעות -L אפשרויות.

5. עבור מקשר מקורי, חפש את התוכן של משתנה הסביבה
"LD_LIBRARY_PATH".

6. עבור מקשר ELF מקורי, הספריות ב-"DT_RUNPATH" או "DT_RPATH" של משותף
בספרייה מחפשים ספריות משותפות הדרושות לה. הערכים "DT_RPATH" הם
התעלמו אם קיימות ערכי "DT_RUNPATH".

7. ספריות ברירת המחדל, בדרך כלל / lib ו / Usr / lib.

8. עבור מקשר מקורי במערכת ELF, אם הקובץ /etc/ld.so.conf קיים, הרשימה
של ספריות שנמצאו בקובץ הזה.

אם הספרייה המשותפת הנדרשת לא נמצאה, המקשר יוציא אזהרה ו
להמשיך עם הקישור.

-מְשׁוּתָף
-ניתן לשיתוף
צור ספרייה משותפת. זה נתמך כרגע רק ב-ELF, XCOFF ו-SunOS
פלטפורמות. ב-SunOS, המקשר יצור אוטומטית ספרייה משותפת אם -e
האפשרות אינה בשימוש ויש סמלים לא מוגדרים בקישור.

--מיין-נפוץ
--sort-common=עולה
--sort-common=יורד
אפשרות זו מספרת ld כדי למיין את הסמלים הנפוצים לפי יישור בעלייה או
סדר יורד כאשר הוא מציב אותם בקטעי הפלט המתאימים. הסמל
יישורים הנחשבים הם שישה עשר-בייט או יותר, שמונה-בייט, ארבעה-בייט, שני-בייט ו-
בייט אחד. זאת כדי למנוע פערים בין סמלים עקב אילוצי יישור. אם לא
צוין סדר המיון, ואז מניחים סדר יורד.

--sort-section=name
אפשרות זו תחיל את "SORT_BY_NAME" על כל דפוסי המקטעים של התווים הכלליים במקשר
תַסרִיט.

--sort-section=יישור
אפשרות זו תחיל את "SORT_BY_ALIGNMENT" על כל דפוסי קטעי התווים הכלליים ב-
סקריפט מקשר.

--פיצול-לפי-קובץ[=גודל]
דומה --פיצול לפי מיקום מחדש אבל יוצר קטע פלט חדש עבור כל קובץ קלט כאשר
גודל מושג. גודל ברירת המחדל היא גודל 1 אם לא ניתן.

--split-by-reloc[=לספור]
מנסה ליצור קטעים נוספים בקובץ הפלט כך שלא נכנס קטע פלט בודד
הקובץ מכיל יותר מ לספור רילוקיישן. זה שימושי בעת יצירת ענק
קבצים הניתנים להעברה להורדה לתוך גרעינים מסוימים בזמן אמת עם האובייקט COFF
פורמט קובץ; מכיוון ש-COFF אינו יכול לייצג יותר מ-65535 רילוקיישן ביחיד
סָעִיף. שים לב שזה לא יעבוד עם פורמטים של קבצי אובייקט שלא
תמיכה בסעיפים שרירותיים. המקשר לא יפצל קטעי קלט בודדים
לפיזור מחדש, אז אם קטע קלט בודד מכיל יותר מ לספור רילוקיישן
חלק פלט אחד יכיל כל כך הרבה רילוקיישן. לספור כברירת מחדל לערך של
32768.

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

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

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

לדוגמה, ב-SunOS, ld משלב ערכים כפולים בטבלת מחרוזת הסמלים. זֶה
יכול להקטין את גודל קובץ הפלט עם מידע איתור באגים מלא ביותר מ-30
אָחוּז. למרבה הצער, תוכנית SunOS "dbx" לא יכולה לקרוא את התוכנית שהתקבלה
("gdb" אין בעיה). ה --פורמט מסורתי מתג מספר ld לא לשלב
ערכים כפולים.

--section-start=שם המדור=org
אתר קטע בקובץ הפלט בכתובת המוחלטת שניתנה על ידי org. אתה מורשה להשתמש
אפשרות זו פעמים רבות ככל הדרוש כדי לאתר מספר מקטעים בפקודה
קו. org חייב להיות מספר שלם הקסדצימלי יחיד; עבור תאימות עם קישורים אחרים,
אתה יכול להשמיט את המוביל 0x בדרך כלל קשור לערכים הקסדצימליים. הערה: שם
לא צריך להיות רווח לבן בין שם המדור, סימן השוויון ("="), ו org.

-Tbss=org
-Tdata=org
-Ttext=org
כמו --מקטע-התחלה, עם ".bss", ".data" או ".text" בתור שם המדור.

-Ttext-segment=org
בעת יצירת קובץ הפעלה ELF, הוא יגדיר את הכתובת של הביט הראשון של הטקסט
מגזר.

-Trodata-segment=org
בעת יצירת אובייקט ELF בר הפעלה או משותף עבור יעד שבו הנתונים לקריאה בלבד
נמצא בקטע משלו נפרד מהטקסט הניתן להפעלה, הוא יקבע את הכתובת של
הבית הראשון של מקטע הנתונים לקריאה בלבד.

-Tldata-segment=org
בעת יצירת אובייקט ELF בר הפעלה או משותף עבור מודל זיכרון בינוני x86-64, זה
יגדיר את הכתובת של הביט הראשון של קטע ldata.

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

התעלם מהכל
אל תדווח על סמלים לא פתורים.

דווח הכל
דווח על כל הסמלים הלא פתורים. זוהי ברירת המחדל.

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

ignore-in-shared-libs
דווח על סמלים לא פתורים המגיעים מקובצי אובייקט רגילים, אך התעלם מהם אם
הם מגיעים מספריות משותפות. זה יכול להיות שימושי בעת יצירת דינמיקה
בינארי וידוע שכל הספריות המשותפות אליהן היא אמורה להפנות
כלולים בשורת הפקודה של המקשר.

ניתן לשלוט בהתנהגות של ספריות משותפות בפני עצמן גם על ידי
--[no-]allow-shlib-undefined אוֹפְּצִיָה.

בדרך כלל המקשר יפיק הודעת שגיאה עבור כל סמל לא פתור שדווח
אלא האפשרות --אזהרה-לא פתורים-סמלים יכול לשנות זאת לאזהרה.

--dll-verbose
--verbose[=מספר]
הצג את מספר הגרסה עבור ld ורשום את אמולציות המקשר הנתמכות. לְהַצִיג
אילו קבצי קלט ניתן ולא ניתן לפתוח. הצג את סקריפט המקשר שבו נעשה שימוש
המקשר. אם האופציונלי מספר ארגומנט > 1, סטטוס סמל הפלאגין יהיה גם
מוצג.

--version-script=קובץ גרסה-script
ציין את השם של סקריפט גרסה למקשר. זה משמש בדרך כלל כאשר
יצירת ספריות משותפות כדי לציין מידע נוסף על הגרסה
היררכיה של הספרייה שנוצרת. אפשרות זו נתמכת באופן מלא רק ב-ELF
פלטפורמות התומכות בספריות משותפות; לִרְאוֹת גִרְסָה. זה נתמך חלקית על
פלטפורמות PE, שיכולות להשתמש בסקריפטים של גרסה כדי לסנן את נראות הסמלים בייצוא אוטומטי
מצב: כל סמל מסומן מקומי בגרסה הסקריפט לא ייוצא.

--זהיר-נפוץ
אזהרה כאשר סמל משותף משולב עם סמל משותף אחר או עם סמל
הַגדָרָה. קישורי יוניקס מאפשרים תרגול מרושל משהו זה, אבל קישורים בחלקם
מערכות הפעלה אחרות לא. אפשרות זו מאפשרת לך למצוא בעיות פוטנציאליות
משילוב סמלים גלובליים. למרבה הצער, כמה ספריות C משתמשות בתרגול זה, אז
אתה עשוי לקבל כמה אזהרות לגבי סמלים בספריות כמו גם בתוכניות שלך.

ישנם שלושה סוגים של סמלים גלובליים, המומחשים כאן על ידי דוגמאות C:

int i = 1;
הגדרה, שנכנסת לקטע הנתונים האתחול של קובץ הפלט.

חיצוני int i;
הפניה לא מוגדרת, שאינה מקצה מקום. חייב להיות או א
הגדרה או סמל משותף למשתנה איפשהו.

int i;
סמל נפוץ. אם יש רק (אחד או יותר) סמל משותף למשתנה,
הוא נכנס לאזור הנתונים הלא מאותחל של קובץ הפלט. המקשר מתמזג
מספר סמלים נפוצים עבור אותו משתנה לסמל בודד. אם הם
בגדלים שונים, הוא בוחר את הגודל הגדול ביותר. המקשר הופך לסמל נפוץ
להצהרה, אם יש הגדרה של אותו משתנה.

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

1. הפיכת סמל נפוץ לרפרנס, כי כבר יש הגדרה
עבור הסמל.

( ): אזהרה: נפוץ של ` '
עוקף בהגדרה
( ): אזהרה: מוגדר כאן

2. הפיכת סמל נפוץ להפניה, כי הגדרה מאוחרת יותר ל-
נתקל בסמל. זה זהה למקרה הקודם, אלא שה-
סמלים נתקלים בסדר שונה.

( ): אזהרה: הגדרה של ` '
נפוץ מכריע
( ): אזהרה: נפוץ הוא כאן

3. מיזוג סמל משותף עם סמל משותף קודם באותו גודל.

( ): אזהרה: נפוצים מרובים
של ` '
( ): אזהרה: הנפוץ הקודם נמצא כאן

4. מיזוג סמל משותף עם סמל משותף גדול יותר.

( ): אזהרה: נפוץ של ` '
נדחק על ידי נפוץ גדול יותר
( ): אזהרה: נפוץ גדול יותר נמצא כאן

5. מיזוג סמל משותף עם סמל משותף קטן יותר. זה אותו דבר
כמו במקרה הקודם, אלא שהסמלים נתקלים באחר
סדר.

( ): אזהרה: נפוץ של ` '
מכריע נפוץ קטן יותר
( ): אזהרה: נפוץ קטן יותר נמצא כאן

--זהיר-בונים
הזהר אם נעשה שימוש בבנאים גלובליים. זה שימושי רק עבור כמה קבצי אובייקט
פורמטים. עבור פורמטים כמו COFF או ELF, המקשר לא יכול לזהות את השימוש בגלובל
בונים.

--הזהיר-מרובה-gp
אזהרה אם נדרשים ערכי מצביע גלובליים מרובים בקובץ הפלט. זה רק
משמעותי עבור מעבדים מסוימים, כמו אלפא. ספציפית, מעבדים מסוימים
שים קבועים בעלי ערך גדול בקטע מיוחד. פנקס מיוחד (העולמי
pointer) מצביע לאמצע החלק הזה, כך שניתן לטעון קבועים
ביעילות באמצעות מצב פנייה יחסי של בסיס-register. מאז הקיזוז בבסיס-
מצב יחסי רישום קבוע וקטן יחסית (למשל, 16 סיביות), זה מגביל את
גודל מקסימלי של הבריכה הקבועה. לפיכך, בתוכניות גדולות, לעתים קרובות יש צורך
השתמש במספר ערכי מצביע גלובליים כדי להיות מסוגל לטפל בכל האפשרויות
קבועים. אפשרות זו גורמת להנפקת אזהרה בכל פעם שמקרה זה מתרחש.

--הזהיר-פעם אחת
אזהרה רק פעם אחת עבור כל סמל לא מוגדר, ולא פעם אחת לכל מודול שמתייחס אליו
זה.

--זהיר-סעיף-יישר
אזהרה אם הכתובת של קטע פלט השתנתה בגלל יישור. בדרך כלל,
היישור יוגדר על ידי קטע קלט. הכתובת תשתנה רק אם כן
לא מצוין במפורש; כלומר, אם הפקודה "SECTIONS" לא מציינת התחלה
כתובת למדור.

--warn-shared-textrel
אזהרה אם המקשר מוסיף DT_TEXTREL לאובייקט משותף.

-- warn-alternate-em
אזהרה אם לאובייקט יש קוד מכונת ELF חלופי.

--אזהרה-לא פתורים-סמלים
אם המקשר הולך לדווח על סמל לא פתור (ראה את האפשרות
--סמלים-לא פתורים) זה בדרך כלל יוצר שגיאה. אפשרות זו עושה את זה
ליצור אזהרה במקום.

--שגיאה-לא פתורה-סמלים
זה משחזר את התנהגות ברירת המחדל של המקשר של יצירת שגיאות כאשר הוא מדווח
סמלים לא פתורים.

- ארכיון שלם
עבור כל ארכיון המוזכר בשורת הפקודה לאחר ה- - ארכיון שלם אוֹפְּצִיָה,
כלול כל קובץ אובייקט בארכיון בקישור, במקום לחפש את
ארכיון עבור קבצי האובייקטים הדרושים. זה משמש בדרך כלל כדי להפוך קובץ ארכיון
לתוך ספרייה משותפת, מה שמאלץ כל אובייקט להיכלל בשיתוף שנוצר
סִפְרִיָה. ניתן להשתמש באפשרות זו יותר מפעם אחת.

שתי הערות בעת שימוש באפשרות זו מ-gcc: ראשית, gcc אינו יודע על אפשרות זו,
אז אתה צריך להשתמש -וול,-כל-ארכיון. שנית, אל תשכח להשתמש
-וול,-לא-ארכיון שלם אחרי רשימת הארכיונים שלך, כי gcc יוסיף רשימה משלו
של ארכיונים לקישור שלך ואולי לא תרצה שהדגל הזה ישפיע גם על אלה.

--לעטוף=סמל
השתמש בפונקציית עטיפה עבור סמל. כל התייחסות לא מוגדרת ל סמל ייפתר
לעטוף_סֵמֶל". כל התייחסות לא מוגדרת ל-"__real_סֵמֶל" ייפתר ל
סמל.

זה יכול לשמש כדי לספק עטיפה עבור פונקציית מערכת. פונקציית העטיפה
צריך לקרוא "__לעטוף_סֵמֶל". אם הוא רוצה לקרוא לפונקציית המערכת, הוא צריך להתקשר
קרא "__אמיתי_סֵמֶל".

הנה דוגמה טריוויאלית:

ריק *
__wrap_malloc (גודל_t c)
{
printf ("malloc נקרא עם %zu\n", c);
החזר __real_malloc (c);
}

אם אתה מקשר קוד אחר עם קובץ זה באמצעות --לַעֲטוֹף malloc, ואז כל הקריאות ל"malloc"
יקרא לפונקציה "__wrap_malloc" במקום זאת. הקריאה ל"__real_malloc" ב
"__wrap_malloc" יקרא לפונקציה האמיתית "malloc".

ייתכן שתרצה לספק גם פונקציית "__real_malloc", כך שקישורים ללא
--לַעֲטוֹף האפשרות תצליח. אם אתה עושה את זה, אתה לא צריך לשים את ההגדרה של
"__real_malloc" באותו קובץ כמו "__wrap_malloc"; אם תעשה זאת, ההרכב עשוי
פתור את השיחה לפני שלמקשר תהיה הזדמנות לעטוף אותה ל-"malloc".

--eh-frame-hdr
בקש יצירה של מקטע ".eh_frame_hdr" וכותרת מקטע ELF "PT_GNU_EH_FRAME".

--no-ld-generated-unwind-info
בקש יצירה של ".eh_frame" מידע לאירוח עבור קטעי קוד שנוצרו על ידי קישור כמו
PLT. אפשרות זו מופעלת כברירת מחדל אם נתמך במידע על שחרור מקשר שנוצר.

--enable-new-dtags
--disable-new-dtags
קישור זה יכול ליצור את התגים הדינמיים החדשים ב-ELF. אבל מערכות ה-ELF הישנות יותר אולי לא
להבין אותם. אם תפרט --enable-new-dtags, התגים הדינמיים החדשים יהיו
נוצר לפי הצורך ותגים דינמיים ישנים יותר יושמטו. אם תפרט
--disable-new-dtags, לא ייווצרו תגים דינמיים חדשים. כברירת מחדל, הדינמיקה החדשה
תגיות לא נוצרות. שים לב שאפשרויות אלו זמינות רק עבור מערכות ELF.

--hash-size=מספר
הגדר את גודל ברירת המחדל של טבלאות הגיבוב של המקשר למספר ראשוני קרוב ל מספר.
הגדלת ערך זה יכולה להפחית את משך הזמן שלוקח למקשר לבצע אותו
משימות, על חשבון הגדלת דרישות הזיכרון של המקשר. באופן דומה
הפחתת ערך זה יכולה להפחית את דרישות הזיכרון על חשבון המהירות.

--hash-style=סגנון
הגדר את סוג טבלת ה-hash של המקשר. סגנון יכול להיות "sysv" עבור ELF קלאסי
מקטע ".hash", "gnu" עבור סגנון חדש מדור ".gnu.hash" של GNU או "שניהם" עבור שני
טבלאות hash קלאסיות של ELF ".hash" וסגנון חדש של GNU ".gnu.hash". ברירת המחדל היא "sysv".

--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
בפלטפורמות ELF, אפשרויות אלה שולטות כיצד קטעי ניפוי באגים של DWARF נדחסים באמצעות
zlib. --compress-debug-sections=none אינו דוחס קטעי ניפוי באגים של DWARF.
--compress-debug-sections=zlib-gnu דוחס קטעי ניפוי באגים של DWARF ומשנה שם באג
שמות סעיפים מלכתחילה .zdebug במקום .לנפות. --compress-debug-sections=zlib
ו --compress-debug-sections=zlib-gabi לדחוס קטעי ניפוי באגים של DWARF עם
SHF_COMPRESSED מה-ELF ABI. התנהגות ברירת המחדל משתנה בהתאם ל
היעד המעורב ואפשרויות התצורה המשמשות לבניית שרשרת הכלים. ברירת המחדל
ניתן לקבוע על ידי בחינת הפלט של המקשר - עזרה אוֹפְּצִיָה.

--הפחתת הוצאות זיכרון
אפשרות זו מפחיתה את דרישות הזיכרון בזמן ריצה ld, על חשבון הקישור
מְהִירוּת. זה הוצג כדי לבחור באלגוריתם O(n^2) הישן עבור קובץ מפת קישור
דור, ולא אלגוריתם O(n) החדש שמשתמש בכ-40% יותר זיכרון עבור
אחסון סמלים.

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

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

---build-id
--build-id=סגנון
בקש יצירת ".note.gnu.build-id" מדור הערות ELF או ".buildid" COFF
סָעִיף. תוכן ההערה הוא ביטים ייחודיים המזהים את הקובץ המקושר הזה.
סגנון יכול להיות "uuid" כדי להשתמש ב-128 סיביות אקראיות, "sha1" כדי להשתמש ב-hash של 160 סיביות SHA1 ב-
חלקים נורמטיביים של תוכן הפלט, "md5" כדי להשתמש ב-hash של 128 סיביות MD5 ב-
חלקים נורמטיביים של תוכן הפלט, או "0xמחרוזת משושה" להשתמש במחרוזת סיביות נבחרת
שצוין כמספר זוגי של ספרות הקסדצימליות ("-" ו-":" בין תווים
מתעלמים מצמדי ספרות). אם סגנון מושמט, נעשה שימוש ב-"sha1".

הסגנונות "md5" ו-"sha1" מייצרים מזהה שהוא תמיד זהה ב-an
קובץ פלט זהה, אך יהיה ייחודי בין כל קבצי הפלט הלא זהים. זה
לא נועד להשוות כבדיקת סכום לתוכן הקובץ. קובץ מקושר עשוי
ישתנה מאוחר יותר על ידי כלים אחרים, אך מחרוזת ה-build ID המזהה את המקור
הקובץ המקושר אינו משתנה.

מעביר "אף אחד" עבור סגנון משבית את ההגדרה מכל אפשרויות "--build-id" מוקדם יותר
שורת הפקודה.

מקשר i386 PE תומך ב -מְשׁוּתָף אפשרות, שגורמת לפלט להיות a
ספרייה מקושרת דינמית (DLL) במקום קובץ הפעלה רגיל. אתה צריך שם את
פלט "*.dll" כאשר אתה משתמש באפשרות זו. בנוסף, המקשר תומך באופן מלא ב-
קבצי "*.def" סטנדרטיים, אשר עשויים להיות מוגדרים בשורת הפקודה המקשרת כמו אובייקט
קובץ (למעשה, הוא צריך להקדים לארכיונים שמהם הוא מייצא סמלים, כדי להבטיח שהם מקבלים
מקושר, בדיוק כמו קובץ אובייקט רגיל).

בנוסף לאפשרויות המשותפות לכל היעדים, מקשר i386 PE תומך נוסף
אפשרויות שורת הפקודה הספציפיות ליעד i386 PE. אפשרויות שלוקחות ערכים
ניתן להפריד מהערכים שלהם על ידי רווח או סימן שוויון.

--add-stdcall-alias
אם ניתנים, סמלים עם סיומת stdcall (@nn) ייצא כפי שהוא וגם עם ה
הסיומת פשטה. [אפשרות זו היא ספציפית ליציאה ממוקדת i386 PE של המקשר]

--קובץ בסיס פילה
השתמש פילה כשם קובץ שבו יש לשמור את כתובות הבסיס של כל
רילוקיישן הדרושים ליצירת DLL עם dlltool. [זהו i386 PE ספציפי
אוֹפְּצִיָה]

--dll
צור DLL במקום קובץ הפעלה רגיל. אתה יכול גם להשתמש -מְשׁוּתָף או ציין א
"LIBRARY" בקובץ ".def" נתון. [אפשרות זו היא ספציפית ל-i386 PE הממוקד
יציאה של המקשר]

--enable-long-sections-names
--השבת שמות-מקטעים ארוכים
גרסאות ה-PE של פורמט האובייקט COFF מוסיפות הרחבה המאפשרת את השימוש ב
שמות קטעים ארוכים משמונה תווים, המגבלה הרגילה עבור COFF. כברירת מחדל,
שמות אלו מותרים רק בקובצי אובייקט, מכיוון שתמונות הפעלה מקושרות מלאות אינן
לשאת את טבלת המחרוזות COFF הנדרשת כדי לתמוך בשמות הארוכים יותר. בתור הרחבה של GNU,
אפשר לאפשר שימוש בהם גם בתמונות ניתנות להפעלה, או ל-(כנראה
ללא טעם!) לא לאפשר זאת בקובצי אובייקט, באמצעות שתי האפשרויות הללו. בר הפעלה
תמונות שנוצרו עם שמות הקטעים הארוכים האלה מעט לא סטנדרטיים, נושאות כמו
הם עושים טבלת מחרוזת, ועשויים ליצור פלט מבלבל כאשר הם בוחנים עם לא-GNU
כלים מודעים ל-PE, כגון מציגי קבצים ומטפחים. עם זאת, GDB מסתמך על השימוש ב
PE שמות קטעים ארוכים כדי למצוא קטעי מידע באגים של Dwarf-2 בקובץ הפעלה
תמונה בזמן ריצה, וכך אם אף אחת מהאפשרויות לא צוינה בשורת הפקודה, ld יצטרך
אפשר שמות מקטעים ארוכים, עוקף את ברירת המחדל וההתנהגות הנכונה מבחינה טכנית,
כאשר הוא מוצא נוכחות של מידע על ניפוי באגים בזמן קישור תמונה ניתנת להפעלה ו
לא להפשיט סמלים. [אפשרות זו תקפה עבור כל היציאות ממוקדות PE של המקשר]

--enable-stdcall-fixup
--disable-stdcall-fixup
אם הקישור מוצא סמל שאינו יכול לפתור, הוא ינסה לעשות "fuzzy
קישור" על ידי חיפוש אחר סמל מוגדר אחר השונה רק בפורמט של ה
שם הסמל (cdecl vs stdcall) ויפתור את הסמל על ידי קישור להתאמה.
לדוגמה, הסמל הלא מוגדר "_foo" עשוי להיות מקושר לפונקציה "_foo@12", או
הסמל הלא מוגדר "_bar@16" עשוי להיות מקושר לפונקציה "_bar". כאשר
המקשר עושה זאת, הוא מדפיס אזהרה, מכיוון שבדרך כלל הוא היה צריך להיכשל בקישור,
אבל לפעמים ייבוא ​​ספריות שנוצרו מ-DLL של צד שלישי עשוי להזדקק לתכונה זו
להיות שמיש. אם תפרט --enable-stdcall-fixup, תכונה זו מופעלת במלואה
ואזהרות אינן מודפסות. אם תפרט --disable-stdcall-fixup, תכונה זו היא
מושבת ואי התאמה כאלה נחשבות לשגיאות. [אפשרות זו היא ספציפית ל
היציאה הממוקדת של i386 PE של המקשר]

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

--ייצוא-כל-סמלים
אם ניתן, כל הסמלים הגלובאליים באובייקטים המשמשים לבניית DLL ייצאו על ידי
ה-DLL. שים לב שזוהי ברירת המחדל אם אחרת לא היו יוצאים
סמלים. כאשר סמלים מיוצאים במפורש באמצעות קבצי DEF או מיוצאים באופן מרומז
באמצעות תכונות פונקציה, ברירת המחדל היא לא לייצא שום דבר אחר אלא אם אפשרות זו
נתון. שימו לב שהסמלים "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12", ו-"impure_ptr" לא ייוצאו אוטומטית. גַם,
סמלים שיובאו מקובצי DLL אחרים לא ייצאו מחדש, וגם לא סמלים המציינים
הפריסה הפנימית של ה-DLL כגון אלה שמתחילות ב-"_head_" או מסתיימות ב-
"_iname". בנוסף, אין סמלים מ-"libgcc", "libstd++", "libmingw32", או
"crtX.o" ייצא. סמלים ששמותיהם מתחילים ב-"__rtti_" או "__builtin_"
לא ייצא, כדי לעזור עם קובצי DLL של C++. לבסוף, יש רשימה נרחבת של
סמלים cygwin-private שאינם מיוצאים (כמובן, זה חל על בעת הבנייה
DLLs עבור יעדי cygwin). cygwin-excludes אלה הם: "_cygwin_dll_entry@12",
"_cygwin_crt0_common@8", "_cygwin_noncygwin_dll_entry@12", "_fmode", "_impure_ptr",
"cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2",
"cygwin_premain3", ו-"environ". [אפשרות זו היא ספציפית ל-i386 PE הממוקד
יציאה של המקשר]

--אל תכלול-סמלים סמל,סמל, ...
מציין רשימה של סמלים שאין לייצא אוטומטית. הסמל
שמות עשויים להיות מופרדים באמצעות פסיקים או נקודתיים. [אפשרות זו היא ספציפית ל-i386 PE
יציאה ממוקדת של המקשר]

--אל תכלול-הכל-סמלים
מציין שאין לייצא סמלים באופן אוטומטי. [אפשרות זו היא ספציפית ל
היציאה הממוקדת של i386 PE של המקשר]

--יישור קבצים
ציין את יישור הקובץ. קטעים בקובץ יתחילו תמיד בקיזוז קבצים
שהם כפולות של מספר זה. ברירת המחדל היא 512. [אפשרות זו היא ספציפית
ליציאה ממוקדת i386 PE של המקשר]

--ערימה לְהַזמִין
--ערימה לְהַזמִין,לבצע
ציין את מספר הבתים של הזיכרון שיש לשמור (ואופציונלי להתחייב) לשימוש
ערימה עבור התוכנית הזו. ברירת המחדל היא 1MB שמור, 4K מחויב. [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

---image-base ערך
השתמש ערך ככתובת הבסיס של התוכנית או ה-dll שלך. זהו הזיכרון הנמוך ביותר
מיקום שישמש כאשר התוכנית או ה-dll שלך נטענים. כדי לצמצם את הצורך
להעביר ולשפר את הביצועים של קבצי ה-DLL שלך, לכל אחד מהם צריכה להיות כתובת בסיס ייחודית
ולא חופפים לאף קובץ dll אחר. ברירת המחדל היא 0x400000 עבור קובצי הפעלה, ו
0x10000000 עבור קבצי dll. [אפשרות זו היא ספציפית ליציאה ממוקדת i386 PE של
מקשר]

--להרוג ב
אם ניתנת, הסיומות stdcall (@nn) יוסר מהסמלים לפני שהם יהיו
מְיוּצָא. [אפשרות זו היא ספציפית ליציאה ממוקדת i386 PE של המקשר]

---large-address-aware
אם ניתן, הביט המתאים בשדה "מאפיינים" של כותרת COFF מוגדר
כדי לציין שקובץ ההפעלה הזה תומך בכתובות וירטואליות גדולות מ-2 גיגה-בייט.
יש להשתמש בזה בשילוב עם /3GB או /USERVA=ערך מגה בייט נכנס
הסעיף "[מערכות הפעלה]" של BOOT.INI. אחרת, לחלק הזה אין השפעה.
[אפשרות זו היא ספציפית ליציאות ממוקדות PE של המקשר]

--disable-large-address-aware
מחזיר את ההשפעה של הקודם ---large-address-aware אוֹפְּצִיָה. זה שימושי אם
---large-address-aware מוגדר תמיד על ידי מנהל ההדר (למשל Cygwin gcc) וה-
קובץ ההפעלה אינו תומך בכתובות וירטואליות גדולות מ-2 גיגה-בייט. [אפשרות זו
הוא ספציפי ליציאות ממוקדות PE של המקשר]

---major-image-version ערך
מגדיר את המספר העיקרי של "גרסת התמונה". ברירת המחדל היא 1. [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

---major-os-version ערך
מגדיר את המספר העיקרי של "גרסת OS". ברירת המחדל היא 4. [אפשרות זו היא ספציפית
ליציאה ממוקדת i386 PE של המקשר]

---major-subsystem-version ערך
מגדיר את המספר העיקרי של "גרסת תת המערכת". ברירת המחדל היא 4. [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

--גרסת-תמונה-מינורית ערך
מגדיר את המספר המשני של "גרסת התמונה". ברירת המחדל היא 0. [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

--מינור-os-גרסה ערך
מגדיר את המספר המשני של "גרסת OS". ברירת המחדל היא 0. [אפשרות זו היא ספציפית
ליציאה ממוקדת i386 PE של המקשר]

--מינור-subsystem-גרסה ערך
מגדיר את המספר המשני של "גרסת תת המערכת". ברירת המחדל היא 0. [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

--output-def פילה
המקשר יצור את הקובץ פילה שיכיל קובץ DEF המתאים ל
ה-DLL שהמקשר מייצר. קובץ DEF זה (שצריך להיקרא "*.def") עשוי
לשמש ליצירת ספריית ייבוא ​​עם "dlltool" או עשוי לשמש כהפניה ל
סמלים מיוצאים באופן אוטומטי או מרומז. [אפשרות זו היא ספציפית ל-i386 PE
יציאה ממוקדת של המקשר]

--לא ברור פילה
המקשר יצור את הקובץ פילה שיכיל ייבוא ​​lib המתאים ל
ה-DLL שהמקשר מייצר. הייבוא ​​הזה lib (אשר צריך להיקרא "*.dll.a" או
"*.a" עשוי לשמש לקישור לקוחות מול ה-DLL שנוצר; ההתנהגות הזו עושה את זה
ניתן לדלג על שלב יצירת ספריית ייבוא ​​נפרד של "dlltool". [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

--enable-auto-image-base
--enable-auto-image-base=ערך
בחר אוטומטית את בסיס התמונה עבור DLLs, אופציונלי החל בבסיס ערך,
אלא אם כן צוין אחד באמצעות הארגומנט "--image-base". על ידי שימוש ב-hash שנוצר
מה-dllname ליצירת בסיסי תמונות ייחודיים עבור כל DLL, התנגשויות בזיכרון ו
רילוקיישן שעלול לעכב את ביצוע התוכנית נמנעים. [אפשרות זו היא ספציפית
ליציאה ממוקדת i386 PE של המקשר]

--disable-auto-image-base
אל תיצור אוטומטית בסיס תמונות ייחודי. אם אין מוגדר על ידי משתמש
image base ("--image-base") ולאחר מכן השתמש בברירת המחדל של הפלטפורמה. [אפשרות זו היא ספציפית
ליציאה ממוקדת i386 PE של המקשר]

--dll-search-prefix מחרוזת
בעת קישור דינמי ל-dll ללא ספריית ייבוא, חפש
" .dll" עדיפות ל-"lib .dll". התנהגות זו מאפשרת
הבחנה קלה בין קובצי DLL שנבנו עבור "תת-פלטפורמות" השונות: native, cygwin,
uwin, pw וכו'. לדוגמה, קובצי DLL של cygwin משתמשים בדרך כלל ב-"--dll-search-prefix=cyg".
[אפשרות זו היא ספציפית ליציאה ממוקדת i386 PE של המקשר]

--הפעל-ייבוא ​​אוטומטי
בצע קישור מתוחכם של "_symbol" ל-"__imp__symbol" עבור ייבוא ​​DATA מ-DLL,
וליצור את סמלי ה-thunking הדרושים בעת בניית ספריות הייבוא ​​עם
יצוא ה-DATA הזה. הערה: שימוש בתוסף 'ייבוא ​​אוטומטי' יגרום לטקסט
קטע של קובץ התמונה שיהיה ניתן לכתיבה. זה לא תואם את PE-COFF
מפרט הפורמט שפורסם על ידי Microsoft.

הערה - שימוש בתוסף 'ייבוא ​​אוטומטי' יגרום גם לנתונים לקריאה בלבד
בדרך כלל יש למקם את קטע rdata כדי להיות ממוקם בקטע .data
במקום זאת. זאת על מנת לעקוף בעיה עם consts שמתוארת
כאן: http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

השימוש ב'ייבוא ​​אוטומטי' בדרך כלל 'פשוט יעבוד' - אבל לפעמים אתה עשוי לראות זאת
הוֹדָעָה:

" לא ניתן לייבא אוטומטית משתנה ' '. אנא קרא את התיעוד של ld's
"--enable-auto-import" לפרטים."

הודעה זו מתרחשת כאשר ביטוי (משנה) כלשהו ניגש לכתובת שניתנה בסופו של דבר על ידי
סכום שני קבועים (טבלאות ייבוא ​​של Win32 מאפשרות רק אחד). מקרים שבהם זה
עשוי להתרחש כולל גישה לשדות חבר של משתני struct שיובאו מ-DLL,
כמו גם שימוש באינדקס קבוע למשתנה מערך מיובא מ-DLL. כל
משתנה מרובה מילים (מערכים, מבנים, ארוך ארוך וכו') עלול להפעיל מצב שגיאה זה.
עם זאת, ללא קשר לסוג הנתונים המדויק של המשתנה המיוצא הפוגע, ld יעשה זאת
תמיד לזהות אותו, להוציא את האזהרה ולצאת.

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

דרך אחת היא להשתמש במתג --enable-runtime-pseudo-reloc. זה משאיר את המשימה של
התאמת הפניות בקוד הלקוח שלך עבור סביבת זמן ריצה, כך שיטה זו עובדת
רק כאשר סביבת זמן ריצה תומכת בתכונה זו.

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

סוג חיצוני extern_array[];
extern_array[1] -->
{ נדיף סוג *t=extern_array; t[1] }

or

סוג חיצוני extern_array[];
extern_array[1] -->
{ נדיף int t=1; מערך_מחוץ[t] }

עבור מבנים (ורוב סוגי הנתונים מרובי מילים אחרים) האפשרות היחידה היא להפוך את
מבנה עצמו (או המשתנה הארוך ארוך, או ה...):

extern struct s extern_struct;
extern_struct.field -->
{ מבנה נדיף s *t=&extern_struct; t->שדה }

or

extern long long extern_ll;
extern_ll -->
{ volatile long long * local_ll=&extern_ll; *local_ll }

שיטה שלישית להתמודדות עם קושי זה היא לנטוש את 'יבוא אוטומטי' עבור ה-
סמל פוגע וסמן אותו ב-"__declspec(dllimport)". עם זאת, בפועל זה
דורש שימוש ב-compile-time #defines כדי לציין אם אתה בונה DLL,
בניית קוד לקוח שיקשר ל-DLL, או רק בנייה/קישור לסטטי
סִפְרִיָה. בבחירה בין השיטות השונות לפתרון ה'ישיר
לטפל בבעיית היסט קבוע, עליך לשקול שימוש טיפוסי בעולם האמיתי:

מקורי:

--foo.h
extern int arr[];
--foo.c
#include "foo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

פתרון 1:

--foo.h
extern int arr[];
--foo.c
#include "foo.h"
void main(int argc, char **argv){
/* הדרך לעקיפת הבעיה היא עבור win32 ו-cygwin; אל תעשה "אופטימיזציה" */
volatile int *parr = arr;
printf("%d\n",parr[1]);
}

פתרון 2:

--foo.h
/* הערה: ההנחה היא ייצוא אוטומטי (ללא __declspec(dllexport)) */
#if (defined(_WIN32) || defined(__CYGWIN__)) && \
!(defined(FOO_BUILD_DLL) || מוגדר(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#else
#define FOO_IMPORT
#endif
extern FOO_IMPORT int arr[];
--foo.c
#include "foo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

דרך רביעית להימנע מבעיה זו היא לקודד מחדש את הספרייה שלך כדי להשתמש בפונקציונלי
ממשק ולא ממשק נתונים עבור המשתנים הפוגעים (למשל set_foo() ו
get_foo() פונקציות עזר). [אפשרות זו היא ספציפית ליציאה ממוקדת i386 PE
של המקשר]

--בטל-ייבוא ​​אוטומטי
אל תנסה לבצע קישור מתוחכם של "_symbol" ל-"__imp__symbol" עבור DATA
יבוא מקובצי DLL. [אפשרות זו היא ספציפית ליציאה ממוקדת i386 PE של
מקשר]

--enable-runtime-pseudo-reloc
אם הקוד שלך מכיל ביטויים המתוארים בסעיף --enable-auto-import, כלומר,
DATA מייבא מ-DLL עם היסט שאינו אפס, מתג זה יצור וקטור של
'העברות פסאודו בזמן ריצה' אשר ניתן להשתמש בסביבת זמן ריצה כדי להתאים
הפניות לנתונים כאלה בקוד הלקוח שלך. [אפשרות זו היא ספציפית ל-i386 PE
יציאה ממוקדת של המקשר]

--disable-runtime-pseudo-reloc
אל תיצור העברות פסאודו עבור ייבוא ​​DATA שאינו באפס מ-DLL. [זֶה
אפשרות ספציפית ליציאה הממוקדת של i386 PE של המקשר]

--enable-extra-pe-debug
הצג מידע נוסף על ניפוי באגים הקשור ל-Thunking של סמלים בייבוא ​​אוטומטי. [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

-- יישור מקטע
מגדיר את יישור הקטע. קטעים בזיכרון תמיד יתחילו בכתובות אשר
הם כפולה של מספר זה. ברירת המחדל היא 0x1000. [אפשרות זו היא ספציפית ל-
יציאה ממוקדת i386 PE של המקשר]

--לַעֲרוֹם לְהַזמִין
--לַעֲרוֹם לְהַזמִין,לבצע
ציין את מספר הבתים של הזיכרון שיש לשמור (ואופציונלי להתחייב) לשימוש
מחסנית עבור תוכנית זו. ברירת המחדל היא 2MB שמורות, 4K מחויב. [אפשרות זו היא
ספציפית ליציאה ממוקדת i386 PE של המקשר]

-- תת מערכת אשר
-- תת מערכת אשר:גדול
-- תת מערכת אשר:גדול.קטין
מציין את תת-המערכת שבה התוכנית שלך תבוצע. הערכים המשפטיים עבור
אשר הם "מקורי", "windows", "קונסולה", "posix" ו-"xbox". אתה יכול להגדיר באופן אופציונלי
גם גרסת תת-המערכת. ערכים מספריים מתקבלים גם עבור אשר. [אפשרות זו
הוא ספציפי ליציאה ממוקדת i386 PE של המקשר]

האפשרויות הבאות קובעות דגלים בשדה "DllCharacteristics" של קובץ ה-PE
header: [אפשרויות אלו הן ספציפיות ליציאות ממוקדות PE של המקשר]

---high-entropy-va
התמונה תואמת לפריסת מרחב כתובות אקראית של 64 סיביות (ASLR).

--dynamicbase
ניתן להעביר את כתובת בסיס התמונה באמצעות פריסת מרחב כתובת אקראית
(ASLR). תכונה זו הוצגה עם MS Windows Vista עבור יעדי i386 PE.

--forceinteg
בדיקות תקינות הקוד נאכפות.

--nxcompat
התמונה תואמת למניעת ביצוע נתונים. תכונה זו הייתה
הוצג עם MS Windows XP SP2 עבור יעדי i386 PE.

--ללא בידוד
למרות שהתמונה מבינה בידוד, אל תבודד את התמונה.

--לא-סה
התמונה לא משתמשת ב-SEH. אין לקרוא לאף מטפל SE מתמונה זו.

--ללא קשר
אין לאגד תמונה זו.

--wdmdriver
מנהל ההתקן משתמש במודל מנהל התקן MS Windows.

--צוואר
התמונה מודעת ל-Terminal Server.

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

יעד C6X uClinux משתמש בפורמט בינארי הנקרא DSBT כדי לתמוך בספריות משותפות. כל אחד
לספרייה משותפת במערכת צריכה להיות אינדקס ייחודי; כל קובצי ההפעלה משתמשים באינדקס של
0.

--גודל dsbt גודל
אפשרות זו מגדירה את מספר הערכים ב-DSBT של קובץ ההפעלה הנוכחי או המשותף
ספרייה ל גודל. ברירת המחדל היא ליצור טבלה עם 64 ערכים.

--dsbt-index מדד
אפשרות זו מגדירה את אינדקס ה-DSBT של קובץ ההפעלה הנוכחי או הספרייה המשותפת ל מדד.
ברירת המחדל היא 0, המתאים ליצירת קובצי הפעלה. אם משותף
הספרייה נוצרת עם אינדקס DSBT של 0, הרילוקים של "R_C6000_DSBT_INDEX" הם
הועתק לקובץ הפלט.

--no-merge-exidx-entries switch משבית את המיזוג של ערכי exidx סמוכים ב
מידע להירגע מסגרת.

המקשרים 68HC11 ו-68HC12 תומכים באפשרויות ספציפיות לשליטה בבנק הזיכרון
מיפוי מיתוג ויצירת קודי טרמפולינה.

--ללא טרמפולינה
אפשרות זו משביתה את יצירת הטרמפולינה. כברירת מחדל טרמפולינה היא
נוצר עבור כל פונקציה רחוקה שנקראת באמצעות הוראת "jsr" (זה
קורה כאשר נלקח מצביע לפונקציה רחוקה).

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

האפשרויות הבאות נתמכות כדי לשלוט בטיפול ביצירת GOT בעת קישור עבור
68K מטרות.

--יש =סוג
אפשרות זו אומרת למקשר באיזו סכימת יצירת GOT להשתמש. סוג צריך להיות אחד
of יחיד, שלילי, multigot or יעד. למידע נוסף עיין בערך מידע
ל ld.

האפשרויות הבאות נתמכות כדי לשלוט בהפקת הוראות microMIPS מתי
קישור למטרות MIPS.

--insn32
--no-insn32
אפשרויות אלה שולטות בבחירת הוראות microMIPS המשמשות בקוד שנוצר על ידי
הקישור, כמו זה ב-PLT או בדלי כריכה עצלים, או בהרפיה. אם
--insn32 משמש, אז המקשר משתמש רק בקידוד הוראות של 32 סיביות. כברירת מחדל
או אם --no-insn32 בשימוש, נעשה שימוש בכל קידודי ההוראות, כולל 16 סיביות
היכן שאפשר.

הסביבה


אתה יכול לשנות את ההתנהגות של ld עם משתני הסביבה "GNUTARGET",
"LDEMULATION" ו-"COLLECT_NO_DEMANGLE".

"GNUTARGET" קובע את פורמט האובייקט של קובץ הקלט אם אתה לא משתמש -b (או המילה הנרדפת שלו
--פוּרמָט). הערך שלו צריך להיות אחד משמות ה-BFD עבור פורמט קלט. אם אין
"GNUTARGET" בסביבה, ld משתמש בפורמט הטבעי של היעד. אם "GNUTARGET"
מוגדר ל"ברירת מחדל" ואז BFD מנסה לגלות את פורמט הקלט על ידי בחינת בינארי
קבצי קלט; שיטה זו מצליחה לעתים קרובות, אבל יש אי בהירות פוטנציאליות, שכן יש
אין שיטה להבטיח שמספר הקסם המשמש לציון פורמטים של קובץ אובייקט הוא
ייחודי. עם זאת, הליך התצורה של BFD בכל מערכת מציב את
פורמט קונבנציונלי עבור מערכת זו תחילה ברשימת החיפוש, כך שאי הבהירות נפתרת
בעד מוסכמה.

"LDEMULATION" קובע את אמולציית ברירת המחדל אם אינך משתמש ב- -m אוֹפְּצִיָה. ה
אמולציה יכולה להשפיע על היבטים שונים של התנהגות קישור, במיוחד קישור ברירת המחדל
תַסרִיט. אתה יכול לרשום את האמולציות הזמינות עם --מִלוּלִי or -V אפשרויות. אם ה
-m האפשרות אינה בשימוש, ומשתנה הסביבה "LDEMULATION" אינו מוגדר, ה-
אמולציית ברירת המחדל תלויה באופן שבו הוגדר המקשר.

בדרך כלל, המקשר יעשה כברירת מחדל את הפירוק של סמלים. לעומת זאת, אם
"COLLECT_NO_DEMANGLE" מוגדר בסביבה, ולאחר מכן הוא יקבע כברירת מחדל ללא דה-מנגל
סמלים. משתנה סביבה זה משמש באופן דומה על ידי המקשר "gcc".
תוכנית עטיפה. ברירת המחדל עשויה להיות עוקפת על ידי --למטה ו --ללא התפלגות
אפשרויות.

השתמש ב-mips64el-linux-gnuabi64-ld.bfd באינטרנט באמצעות שירותי onworks.net


Ad


Ad

התוכניות המקוונות האחרונות של לינוקס ו-Windows