אנגליתצרפתיתספרדי

Ad


סמל OnWorks

h8300-hitachi-coff-ld - מקוון בענן

הפעל את h8300-hitachi-coff-ld בספק אירוח חינמי של OnWorks על אובונטו אונליין, פדורה אונליין, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

זוהי הפקודה h8300-hitachi-coff-ld שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


ld - שימוש ב-LD, המקשר של GNU

תַקצִיר


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

תיאור


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

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

דף אדם זה אינו מתאר את שפת הפקודה; לראות את ld ערך ב"מידע", או את
manual ld: מקשר GNU, לפרטים מלאים על שפת הפקודה ועל היבטים אחרים
של מקשר 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" כדי
להעמיס חפצים אחרים. שים לב שציון סקריפט בדרך זו רק מגדיל את העיקרון
סקריפט מקשר; להשתמש ב -T אפשרות להחליף לחלוטין את סקריפט המקשר המוגדר כברירת מחדל.

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

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

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

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

gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup

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

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

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

-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" יש את
אותו אפקט.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-lארכיון
--ספרייה=ארכיון
הוסף קובץ ארכיון ארכיון לרשימת הקבצים לקישור. ניתן להשתמש באפשרות זו בכל
מספר פעמים. ld יחפש ברשימת הנתיבים שלו מופעים של "libarchive.a" ל
כל ארכיון נָקוּב.

במערכות התומכות בספריות משותפות, ld יכול גם לחפש ספריות עם
הרחבות שאינן ".a". באופן ספציפי, במערכות ELF ו-SunOS, ld יחפש א
ספרייה עבור ספרייה עם סיומת ".so" לפני חיפוש ספרייה עם an
הרחבה של ".a". לפי המוסכמה, סיומת ".so" מציינת ספרייה משותפת.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-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 אפשרויות מצטברות.

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

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

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

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

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

-X
--זרוק-מקומיים
מחק את כל הסמלים המקומיים הזמניים. עבור רוב המטרות, זה כל הסמלים המקומיים שלהם
שמות מתחילים ב L.

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

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

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

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

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

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

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

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

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

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

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

nocopyreloc
משבית ייצור של רילוקי עותק.

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

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

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

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

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

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

מתעלמים ממילות מפתח אחרות בגלל תאימות 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 להיפלט רק עבור
ספריות שמספקות התייחסות כלשהי לסמלים מאובייקטים רגילים שאינה מוגדרת
בנקודה שהספרייה הייתה מקושרת. --לא-לפי הצורך משחזר את ברירת המחדל
התנהגות.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

--אזהרות-קטלניות
התייחס לכל האזהרות כאל שגיאות.

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

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

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

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

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

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

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

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

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

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

הסיבה לכך --allow-shlib-undefined ברירת המחדל היא שהספרייה המשותפת
ייתכן שצוין בזמן הקישור לא יהיה זהה לזה שזמין בעת ​​הטעינה
זמן, כך שהסמלים עשויים להיות ניתנים לפתרון בזמן הטעינה. בנוסף יש כמה
מערכות, (למשל BeOS) שבהן סמלים לא מוגדרים בספריות משותפות זה נורמלי. (הגרעין
מתקן אותם בזמן הטעינה כדי לבחור איזו פונקציה המתאימה ביותר לזרם
ארכיטקטורה. זה משמש למשל לבחירה דינמית של memset מתאים
פוּנקצִיָה). כנראה שזה גם נורמלי שלספריות משותפות של HPPA יהיו לא מוגדרות
סמלים.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

מסלול 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 האפשרות יעילה בלבד
בזמן קישור. זה מיועד למקשר המקומי בלבד.

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
האפשרות אינה בשימוש ויש סמלים לא מוגדרים בקישור.

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

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

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

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

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

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

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

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

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

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

-טבס org
-תנתונים org
-Ttext org
זהה ל--section-start, עם ".bss", ".data" או ".text" בתור שם המדור.

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

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

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

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

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

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

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

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

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

--זהיר-נפוץ
אזהרה כאשר סמל משותף משולב עם סמל משותף אחר או עם סמל
הַגדָרָה. קישורי יוניקס מאפשרים תרגול מרושל משהו זה, אבל קישורים בחלקם
מערכות הפעלה אחרות לא. אפשרות זו מאפשרת לך למצוא בעיות פוטנציאליות
משילוב סמלים גלובליים. למרבה הצער, חלק מספריות 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 לאובייקט משותף.

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

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

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

שתי הערות בעת שימוש באפשרות זו מ-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".

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

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

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

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

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

מקשר 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-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
יציאה ממוקדת של המקשר]

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

--ערימה לְהַזמִין
--ערימה לְהַזמִין,לבצע
ציין את כמות הזיכרון לשמירה (ובאופן אופציונלי להתחייב) לשמש כ-heap
התוכנית הזו. ברירת המחדל היא 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 של המקשר]

---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
בחר אוטומטית את בסיס התמונות עבור קובצי DLL, אלא אם צוין אחד באמצעות ה-
ארגומנט "--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.

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

" לא ניתן לייבא אוטומטית משתנה ' '. אנא קרא את התיעוד של 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__)) && \
!( מוגדר(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 של המקשר]

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

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

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

הסביבה


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

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

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

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

השתמש ב-h8300-hitachi-coff-ld באינטרנט באמצעות שירותי onworks.net


שרתים ותחנות עבודה בחינם

הורד אפליקציות Windows & Linux

  • 1
    DivFix + +
    DivFix + +
    DivFix++ הוא שלך תיקון וידאו AVI ו
    תוכנת תצוגה מקדימה. זה מיועד לתיקון
    ותצוגה מקדימה של קבצים שנמצאים בהורדה
    מ-ed2k(emule), torrent, gnutella, ftp...
    הורד את DivFix++
  • 2
    קהילת JBoss
    קהילת JBoss
    פרויקטים מונעי קהילה הכוללים את
    החידושים העדכניים ביותר לקדמת קצה
    אפליקציות. פרויקט הדגל שלנו JBoss AS הוא
    הקוד הפתוח המוביל,
    תואם תקנים...
    הורד את JBoss Community
  • 3
    ג'נגו פילר
    ג'נגו פילר
    django Filer הוא ניהול קבצים
    יישום עבור django שעושה
    טיפול בקבצים ובתמונות בקלות.
    django-filer הוא ניהול קבצים
    יישום עבור djang...
    הורד את Django Filer
  • 4
    xCAT
    xCAT
    ערכת כלי ניהול אשכולות אקסטרים.
    xCAT הוא ניהול אשכולות ניתן להרחבה
    וכלי אספקה ​​המספק
    בקרת חומרה, גילוי ומערכת הפעלה
    diskful/di...
    הורד את xCAT
  • 5
    Psi
    Psi
    Psi הוא XMPP רב עוצמה חוצה פלטפורמות
    לקוח המיועד למשתמשים מנוסים.
    יש בנייה זמינה עבור MS
    Windows, GNU/Linux ו-macOS.. קהל:
    משתמשי קצה...
    הורד את Psi
  • 6
    בלובי מטח 2
    בלובי מטח 2
    המשך רשמי של המפורסם
    משחק ארקייד Blobby Volley 1.x..
    קהל: משתמשי קצה/שולחן עבודה. מִשׁתַמֵשׁ
    ממשק: OpenGL, SDL. תִכנוּת
    שפה: C++, Lua. ג...
    הורד את Blobby Volley 2
  • עוד »

פקודות לינוקס

Ad