לינוקס / יוניקס קאַמאַנד: יד

NAME

ld - ניצן LD , די GNU linker

SYNOPSIS

ld [ options ] objfile ...

DESCRIPTION

ld קאַמביינז אַ נומער פון כייפעץ און אַרקייוו טעקעס , רילאָוקייטז זייער דאַטע און טייז אַרויף סימבאָל באַווייַזן. יוזשאַוואַלי די לעצטע שריט אין קאַמפּיילינג אַ פּראָגראַם איז צו לויפן לד .

ld accepts לינקער באַפֿעלן שפּראַך טעקעס געשריבן אין אַ סופּערסעט פון AT & T ס לינק עדיטאָר קאַמאַנד שפּראַך סינטאַקס, צו צושטעלן יקספּליסאַט און גאַנץ קאָנטראָל איבער די פֿאַרבינדונג פּראָצעס.

דעם מענטש בלאַט טוט נישט באַשליסן די באַפֿעלן שפּראַך; זען די לד פּאָזיציע אין "אינפֿאָרמאַציע", אָדער די מאַנואַל לד: די GNU לינקער, פֿאַר פול פרטים אויף די באַפֿעלן שפּראַך און אויף אנדערע אַספּעקץ פון די גנו לינקער.

דעם ווערסיע פון לד ניצט דער גענעראַל ציל בפד לייברעריז צו אַרבעטן אויף כייפעץ טעקעס. דעם אַלאַוז איר צו לייענען, פאַרבינדן, און שרייַבן כייפעץ טעקעס אין פילע פאַרשידענע פֿאָרמאַטירונגען --- פֿאַר בייַשפּיל, קאָפף אָדער "אַ.אָוט". פאַרשידענע פֿאָרמאַטירונגען קענען זיין פארבונדן צוזאַמען צו פּראָדוצירן קיין בנימצא טיפּ פון כייפעץ טעקע.

די גנו ליינער איז מער נוצלעך ווי אנדערע לינקס אין צושטעלן דיאַגנאָסטיק אינפֿאָרמאַציע. פילע לינקערס פאַרלאָזן דורכפירונג מיד אויף טרעפן אַ טעות; ווען מעגלעך, לד האלט עקסאַקיוטינג, אַלאַוינג איר צו ידענטיפיצירן אנדערע ערראָרס (אָדער, אין עטלעכע פאלן, צו באַקומען אַ רעזולטאַט טעקע אין דעם טעות).

די GNU לינקס לד איז מענט צו דעקן אַ ברייט קייט פון סיטואַטיאָנס, און צו זיין ווי קאַמפּאַטאַבאַל ווי מעגלעך מיט אנדערע לינקס. ווי אַ רעזולטאַט, איר האָבן פילע ברירות צו קאָנטראָלירן זייַן נאַטור.

אָפּציעס

די לינקער שטיצט אַ פּלעטהאָראַ פון באַפֿעלן שורה אָפּציעס , אָבער אין פאַקטיש פיר ווייניק פון זיי זענען געניצט אין קיין באַזונדער קאָנטעקסט. פֿאַר בייַשפּיל, אַ אָפט נוצן פון לד איז צו פאַרבינדן נאָרמאַל וניקס כייפעץ טעקעס אויף אַ נאָרמאַל, געשטיצט יוניקס סיסטעם . אויף אַזאַ אַ סיסטעם, צו פאַרבינדן אַ טעקע "hello.o":

ld -o /lib/crt0.o hello.o -lc

דעם דערציילט לד צו פּראָדוצירן אַ טעקע גערופן רעזולטאַט ווי דער רעזולטאַט פון פֿאַרבינדונג די טעקע "/ ליב / קרט0.אָ" מיט "hello.o" און די ביבליאָטעק "ליווק.אַ", וואָס וועט קומען פון די נאָרמאַל זוכן דירעקטעריז. (זען די דיסקוסיע פון ​​די- ל אָפּציע ונטער.)

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

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

יוזשאַוואַלי די לינקער איז ינוווקטיד מיט בייַ מינדסטער איין כייפעץ טעקע, אָבער איר קענען ספּעציפיצירן אנדערע פארמען פון ביינערי אַרייַנשרייַב טעקעס ניצן- ל , , און די שריפט באַפֿעלן שפּראַך. אויב קיין ביינערי אַרייַנשרייַב טעקעס אין אַלע זענען ספּעסאַפייד, די לינקסער טוט נישט פּראָדוצירן קיין רעזולטאַט, און ישוז די אָנזאָג קיין אַרייַנשרייַב טעקעס .

אויב די לינקער קענען נישט דערקענען דעם פֿאָרמאַט פון אַ כייפעץ טעקע, עס וועט יבערנעמען אַז עס איז אַ לינקער שריפט. א שריפט ספּעסאַפייד אין דעם וועג אַקיומאַנץ די הויפּט לינקער שריפט געניצט פֿאַר דעם לינק (אָדער די פעליקייַט לינדער שריפט אָדער די איינער ספּעסאַפייד דורך ניצן ). דעם שטריך פּערמיץ די לינקער צו לינק קעגן אַ טעקע וואָס איז אַ כייפעץ אָדער אַ אַרקייוו, אָבער פשוט דיפיינז עטלעכע סימבאָל וואַלועס, אָדער ניצט "ינטיט" אָדער "גרופע" צו מאַסע אנדערע אַבדזשעקץ. באַמערקונג אַז ספּעסאַפייינג אַ שריפט אין דעם וועג בלויז אַקיומיאַלייץ די הויפּט לינקער שריפט; ניצן די אָפּציע צו פאַרבייַטן די פעליקייַט לינקס שריפט לעגאַמרע.

פֿאַר אָפּציעס וועמענס נעמען זענען אַ איין בריוו, אָפּציע אַרגומענטן מוזן אָדער נאָכפאָלגן די אָפּציע בריוו אָן ינטערווינינג ווהיטעספּאַסע, אָדער זיין געגעבן ווי באַזונדער אַרגומענטן מיד נאָך די אָפּציע אַז ריקווייערז זיי.

פֿאַר אָפּציעס וועמענס נעמען זענען קייפל אותיות, אָדער איינער דאַש אָדער צוויי קענען פאַרהאַלטן די אָפּציע נאָמען; פֿאַר בייַשפּיל, -טראַסע סימבאָל און - טראַסע-סימבאָל זענען עקוויוואַלענט. באַמערקונג - עס איז איין ויסנעם צו דעם הערשן. קייפל בריוו אָפּציעס וואָס אָנהייבן מיט אַ נידעריקער פאַל 'אָ' קענען בלויז זיין פאָרויסידט דורך צוויי דאַשעס. דעם איז צו רעדוצירן צעמישונג מיט די אָפּציע. אַזוי פֿאַר בייַשפּיל -אָמאַגיק שטעלט די רעזולטאַט טעקע נאָמען צו מאַגיש כוועראַז - אָאָמאַגיק שטעלט די NMAGIC פאָן אויף דער רעזולטאַט.

אַרגומענטן צו קייפל-בריוו אָפּציעס מוזן זיין אפגעשיידט פון די אָפּציע נאָמען דורך אַן יקוואַלז צייכן, אָדער זיין געגעבן ווי באַזונדער אַרגומענטן מיד נאָך די אָפּציע אַז ריקווייערז זיי. פֿאַר בייַשפּיל, --trace-symbol foo און - trace-symbol = foo זענען עקוויוואַלענט. יינציק אַבריווייישאַנז פון די נעמען פון קייפל-בריוו אָפּציעס זענען אנגענומען.

באַמערקונג - אויב די לינקער איז גערופן ינקערעקטלי, דורך אַ קאַמפּיילער שאָפער (למשל גקק ), דעמאָלט אַלע די לינקער באַפֿעל שורה אָפּציעס זאָל זיין פּרעפיקסעד דורך -וול, (אָדער וועלכער איז צונעמען פֿאַר די ספּעציפיש קאַמפּיילער שאָפער) ווי דאָס:

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

דעם איז וויכטיק, ווייַל אַנדערש די קאַמפּיילער שאָפער פּראָגראַם קען בישטיקע פאַלן די לינקער אָפּציעס, ריזאַלטינג אין אַ שלעכט לינק.

דאָ איז אַ טיש פון די דזשאַנעריק באַפֿעלן שורה סוויטשיז אנגענומען דורך די GNU לינקער:

-a keyword

דעם אָפּציע איז שטיצט פֿאַר הפּ / וקס קאַמפּאַטאַבילאַטי. דער שליסלען אַרגומענט מוזן זיין איינער פון די סטרינגס אַרקייוו , שערד , אָדער פעליקייַט . -אַאַרטיווע איז פאַנגקשאַנאַלי עקוויוואַלענט צו -בסטיק , און די אנדערע צוויי טערמינען זענען פאַנגקשאַנאַלי עקוויוואַלענט צו -בינאַמיק . דעם אָפּציע קען זיין געוויינט קיין נומער פון מאל.

- א אַרקאַטעקטשער

- אַרטשיטעקטורע = אַרקאַטעקטשער

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

צוקונפֿט ריליסיז פון לד קענען שטיצן ענלעך פאַנגקשאַנאַליטי פֿאַר אנדערע אַרקאַטעקטשער משפחות.

אַרייַנשרייַב-פֿאָרמאַט

--פאָרמאַט = אַרייַנשרייַב-פֿאָרמאַט

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

איר קען נוצן דעם אָפּציע אויב איר זענט פֿאַרבינדונג מיט אַ ומגעוויינטלעך ביינערי פֿאָרמאַט. איר קענען אויך נוצן צו באַשטימען פֿאָרמאַטירונגען בישליימעס (ווען פֿאַרבינדונג כייפעץ טעקעס פון פאַרשידענע פאָרמאַץ), אַרייַנגערעכנט אַרייַנשרייַב-פֿאָרמאַט איידער יעדער גרופּע פון ​​כייפעץ טעקעס אין אַ באַזונדער פֿאָרמאַט.

די פעליקייַט פֿאָרמאַט איז גענומען פון די סוויווע בייַטעוודיק "GNUTARGET".

איר קענען אויך דעפינירן די אַרייַנשרייַב פֿאָרמאַט פון אַ שריפט, ניצן די באַפֿעל "טאַרגעט";

MRI-commandfile

- מרי-שריפט = מרי-קאָמאַנדפילע

פֿאַר קאַמפּאַטאַבילאַטי מיט לינקערס געשאפן דורך מרי, ld אַקסעפּץ שריפט טעקעס געשריבן אין אַ בייַטנ לויט דער ריי, ריסטריקטאַד באַפֿעל שפּראַך, דיסקרייבד אין די MRI קאָמפּאַטיבלע סקריפּט פילעס אָפּטיילונג פון GNU ld דאַקיומענטיישאַן. פאָרשטעלן מרי סקריפּט טעקעס מיט די אָפּציע -c ; ניצן די אָפּציע צו לויפן לינקער סקריפּס געשריבן אין דער אַלגעמיין-ציל לד סקריפּטינג שפּראַך. אויב מרי-קמפלעילע טוט נישט עקסיסטירן, לד קוקן פֿאַר עס אין די דירעקטעריז ספּעסאַפייד דורך קיין- ל אָפּציעס.

-דק

-דפּ

די דרייַ אָפּציעס זענען עקוויוואַלענט; קייפל פארמען זענען געשטיצט פֿאַר קאַמפּאַטאַבילאַטי מיט אנדערע לינקס. זיי באַשטימען אָרט צו פּראָסט סימבאָלס אפילו אויב אַ רילאָוקאַטאַבאַל רעזולטאַט טעקע איז ספּעסאַפייד (מיט- ר ). דער שריפט באַפֿעל "FORCE_COMMON_ALLOCATION" האט די זעלבע ווירקונג.

פּאָזיציע

- אָנעס = פּאָזיציע

ניצן די אַרויסווייַזן ווי דער יקספּליסאַט סימבאָל פֿאַר אָנהייב דורכפירונג פון דיין פּראָגראַם, אלא ווי די פעליקייַט פּאָזיציע פּאָזיציע. אויב עס איז קיין סימבאָל געהייסן פּאָזיציע , די לינקער וועט פּרובירן צו פּאַרץ פּאָזיציע ווי אַ נומער, און נוצן אַז ווי די פּאָזיציע אַדרעס (די נומער וועט זיין ינטערפּראַטאַד אין באַזע 10; איר קען נוצן אַ לידינג 0 קס פֿאַר באַזע 16 אָדער אַ לידינג 0 פֿאַר באַזע 8).

-E

- עקספּאָרט-דינאַמיש

ווען שאַפֿן אַ דינאַמיקאַללי לינגקט עקסעקוטאַבלע, לייגן אַלע סימבאָלס צו די דינאַמיש סימבאָל טיש. די דינאַמיש סימבאָל טיש איז די סכום פון סימבאָלס וואָס זענען קענטיק פון דינאַמיש אַבדזשעקס אין די צייַט.

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

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

איר קענען אויך נוצן די ווערסיע שריפט צו קאָנטראָלירן וואָס סימבאָלס זאָל זיין מוסיף צו די דינאַמיש סימבאָל טיש אויב די רעזולטאַט פֿאָרמאַט שטיצט עס. זען די באַשרייַבונג פון --version-שריפט אין @ רעף {VERSION}.

-EB

לינק גרויס-ינדיאַן אַבדזשעקץ. דעם אַפעקץ די פעליקייַט רעזולטאַט פֿאָרמאַט.

-EL

לינק ביסל-ינדיאַן אַבדזשעקץ. דעם אַפעקץ די פעליקייַט רעזולטאַט פֿאָרמאַט.

-f

--סיאַליאַרי נאָמען

ווען שאפן אַ עלף שערד כייפעץ, שטעלן די ינערלעך דעט_אַוקסיליאַרי פעלד צו די ספּעסאַפייד נאָמען. דאָס דערציילט די דינאַמיש לינקער אַז די סימבאָל טיש פון די שערד כייפעץ זאָל זיין געניצט ווי אַ אַגזיליערי פילטער אויף די סימבאָל טיש פון די שערד כייפעץ נאָמען .

אויב איר שפּעטער לינק אַ פּראָגראַם קעגן דעם פילטער כייפעץ, דעריבער, ווען איר לויפן דעם פּראָגראַם, די דינאַמיש לינקער וועט זען די DT_AUXILIARY פעלד. אויב די דינאַמיש לינקער ריזאַלווז קיין סימבאָלס פון די פילטער כייפעץ, עס וועט ערשטער קאָנטראָלירן צי עס איז אַ דעפֿיניציע אין די שערד כייפעץ נאָמען . אויב עס איז איינער, עס וועט זיין געוויינט אַנשטאָט פון די דעפֿיניציע אין די פילטער כייפעץ. די שערד כייפעץ נאָמען דאַרפֿן נישט עקסיסטירן. אזוי דער שערד כייפעץ נאָמען קען זיין געניצט צו צושטעלן אַ אָלטערנאַטיוו ימפּלאַמענטיישאַן פון עטלעכע פאַנגקשאַנז, טאָמער פֿאַר דיבאַגינג אָדער פֿאַר מאַשין ספּעציפיש פאָרשטעלונג.

דעם אָפּציע קען זיין ספּעסאַפייד מער ווי איין מאָל. די דעט_אַוקסיליאַרי איינסן וועלן זיין באשאפן אין די סדר אין וואָס זיי דערשייַנען אויף די באַפֿעל שורה.

-F נאָמען

- פילטער נאָמען

ווען שאפן אַן עלף שערד כייפעץ, שטעלן די ינערלעך דעט_פילטער פעלד צו די ספּעסאַפייד נאָמען. דאָס דערציילט די דינאַמיש לינקער אַז דער סימבאָל טיש פון די שערד כייפעץ וואָס איז באשאפן געווארן זאָל זיין געניצט ווי אַ פילטער אויף די סימבאָל טיש פון די שערד כייפעץ נאָמען .

אויב איר שפּעטער לינק אַ פּראָגראַם קעגן דעם פילטער כייפעץ, דעריבער, ווען איר לויפן דעם פּראָגראַם, די דינאַמיש לינקער וועט זען די DT_FILTER פעלד. דער דינאַמיש לינקער וועט באַשטימען סימבאָלס לויט די סימבאָל טיש פון די פילטער כייפעץ ווי געוויינטלעך, אָבער עס וועט פאקטיש פאַרבינדן צו די זוך אין די שערד כייפעץ נאָמען . אזוי דער פילטער כייפעץ קענען זיין געניצט צו אויסקלייַבן אַ סובסעט פון די סימבאָלס צוגעשטעלט דורך די כייפעץ נאָמען .

עטלעכע עלטערע לינקערס געניצט די אָפּציע איבער אַ קאָמפּלאַטיאָן טאָאָטשאַין פֿאַר ספּעסאַפייינג כייפעץ-טעקע פֿאָרמאַט פֿאַר ביידע אַרייַנשרייַב און רעזולטאַט כייפעץ טעקעס. די GNU לינקער ניצט אנדערע מעקאַניזאַמז פֿאַר דעם צוועק: די , -פאָרמאַט , -אָפאָרמאַט אָפּציעס, די "טאַרגעט" באַפֿעל אין לינקס סקריפּס, און די "GNUTARGET" סוויווע בייַטעוודיק. די GNU לינקער וועט איגנאָרירן די אָפּציע ווען ניט שאפן אַן עלף שערד כייפעץ.

-פיני נאָמען

ווען שאַפֿן אַ ELF עקסעקוטאַבלע אָדער שערד כייפעץ, רופן נאַמע ווען די עקסאַקיוטאַבאַל אָדער שערד כייפעץ איז אַנלאָודינג, דורך באַשטעטיקן דט_פיני צו די אַדרעס פון די פֿונקציע. דורך פעליקייַט, די לינקסער ניצט "_פיני" ווי דער פֿונקציע צו רופן.

Ignored. ביטנייַ פֿאַר קאַמפּאַטאַבילאַטי מיט אנדערע מכשירים.

-G ווערט

- גפּסיזע = ווערט

שטעלן די מאַקסימום גרייס פון אַבדזשעקס צו זיין אָפּטימיזעד ניצן די גפּ רעגיסטרירן צו גרייס . דעם איז בלויז באַטייַטיק פֿאַר כייפעץ טעקע פֿאָרמאַטירונגען אַזאַ ווי מיפּס עקאָף וואָס שטיצט פּאַטינג גרויס און קליין אַבדזשעקץ אין פאַרשידענע סעקשאַנז. דעם איז איגנאָרירט פֿאַר אנדערע כייפעץ טעקע פֿאָרמאַטירונגען.

נאָמען

-סאָנאַמע = נאָמען

ווען שאפן אַ עלף שערד כייפעץ, שטעלן די ינערלעך דעט_סאָנאַמע פעלד צו די ספּעסאַפייד נאָמען. ווען אַ עקסעקוטאַבלע איז לינגקט מיט אַ שערד כייפעץ וואָס האט אַ דט_סאָנאַמע פעלד, דעמאָלט ווען דער עקסאַקיוטאַבאַל איז פליסנדיק די דינאַמיש לינקער וועט פּרובירן צו מאַסע די שערד כייפעץ ספּעסאַפייד דורך די דעט_סאָנאַמע פעלד, אָבער די נוצן פון די טעקע נאָמען געגעבן צו די לינקער.

-i

דורכפירן אַן ינקראַמענטאַל לינק (זעלביקער ווי אָפּציע- ר ).

-ין נאָמען

ווען שאַפֿן אַ ELF עקסעקוטאַבלע אָדער שערד כייפעץ, רופן נאַמע ווען די עקסאַקיוטאַבאַל אָדער שערד כייפעץ איז לאָודיד, דורך באַשטעטיקן דט_יניט צו די אַדרעס פון די פֿונקציע. דורך פעליקייַט, די לינקסער ניצט "_יניט" ווי דער פֿונקציע צו רופן.

-l אַרקייוו

--library = אַרקייוו

לייג אַרקייוו טעקע אַרקייוו צו די רשימה פון טעקעס צו לינק. דעם אָפּציע קען זיין געוויינט קיין נומער פון מאל. ld וועט זוכן זייַן וועג-רשימה פֿאַר געשעענישן פון "libarchive.a" פֿאַר יעדער אַרקייוו ספּעסאַפייד.

אויף סיסטעמען וואָס שטיצן שילדל לייברעריז, לד קען אויך זוכן פֿאַר לייברעריז מיט עקסטענשאַנז אנדערע ווי ". אַ". ספּעציפֿיש, אויף ELF און SunOS סיסטעמען, לד זוכן אַ וועגווייַזער פֿאַר אַ ביבליאָטעק מיט אַ פאַרלענגערונג פון ". אַזוי" איידער איר זוכט פֿאַר איינער מיט אַ פאַרלענגערונג פון ". אַ". דורך קאַנווענשאַן, אַ ". סאָ" פאַרלענגערונג ינדיקייץ אַ שערד ביבליאָטעק.

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

זען די - ( אָפּציע פֿאַר אַ וועג צו צווינגען די לינקסער צו זוכן אַרקייווז קייפל מאל.

איר קענען רשימה די זעלבע אַרקייוו קייפל מאל אויף די באַפֿעל שורה.

דעם טיפּ פון אַרטשיווע שאַרף איז נאָרמאַל פֿאַר Unix לינקס. אָבער, אויב איר נוצן לד אָנאַיקס, טאָן ניט וויסן וואָס די אַיקס לינקער איז אַנדערש.

זוכן

- לייברערי-דרך = זוכן

לייג דעם זוכן סירד צו די רשימה פון פּאַטס וואָס לד זוכן פֿאַר אַרקייווז לייברעריז און לד קאָנטראָל סקריפּס. איר קענען נוצן דעם אָפּציע קיין נומער פון מאל. די דירעקטעריז זענען געזוכט אין דער סדר אין וואָס זיי זענען ספּעסאַפייד אויף די באַפֿעלן שורה. דירעקטעריז ספּעסאַפייד אויף די באַפֿעלן שורה זענען געזוכט איידער די פעליקייַט דיירעקטעריז. אַלע- ל אָפּציעס אַפּלייז צו אַלע- ל אָפּציעס, ראַגאַרדלאַס פון די סדר אין וואָס די אָפּציעס דערשייַנען.

אויב סעאַרטשיר הייבט מיט "=", דער "=" וועט זיין ריפּלייסט דורך די סיסאָאָט פּרעפיקס , אַ וועג ספּעסאַפייד ווען די לינקסער איז קאַנפיגיערד.

די פעליקייַט שטעלן פון פּאַטס געזוכט (אָן ינסטאָלינג מיט -L ) דעפּענדס אויף וואָס עמולאַטיאָן מאָדע לד איז ניצן, און אין עטלעכע קאַסעס אויך אויף ווי עס איז קאַנפיגיערד.

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

-עם עמיאַליישאַן

עמיאַלייט די עמיאַלייט לינקער. איר קענען רשימה די בנימצא עמולאַטיאָנס מיט די --בראָבאָוז אָדער -וו אָפּציעס.

אויב דער אָפּציע איז ניט געניצט, די עמיאַליישאַן איז גענומען פון די "לדעמולאַטיאָן" סוויווע בייַטעוודיק, אויב אַז איז דיפיינד.

אַנדערש, די פעליקייַט עמיאַליישאַן דעפּענדס אויף ווי די לינקסער איז קאַנפיגיערד.

-M

--print-map

דרוק אַ לינק מאַפּע צו דער נאָרמאַל רעזולטאַט. א לינק מאַפּע גיט אינפֿאָרמאַציע וועגן דעם לינק, אַרייַנגערעכנט די פאלגענדע:

*

ווו כייפעץ טעקעס און סימבאָלס זענען מאַפּט אין זכּרון.

*

ווי געוויינטלעך סימבאָלס זענען אַלאַקייטיד.

*

אַלע אַרקייוו מיטגלידער אַרייַנגערעכנט אין דעם לינק, מיט אַ דערמאָנונג פון די סימבאָל וואָס געפֿירט די אַרקייוו מיטגליד צו זיין געבראכט אין.

- נאַמיק

קער אַוועק זייַט אַדזשאַסטמאַנט פון סעקשאַנז, און צייכן די רעזולטאַט ווי "נמאַגיק" אויב מעגלעך.

-N

--אָמאַגיק

שטעלן די טעקסט און דאַטן סעקשאַנז צו לייענען און שרייַבן. אויך, טאָן ניט ויסמעקן די דאַטן סיגנאַל, און דיסייבאַל פֿאַרבינדונג קעגן שערד לייברעריז. אויב דער רעזולטאַט פֿאָרמאַט שטיצט Unix נוסח מאַגיש נומערן, צייכן די רעזולטאַט ווי "אָמאַגיק".

- ניט-אָמאַגיק

דעם אָפּציע נאַגייץ רובֿ פון די יפעקס פון די אָפּציע. עס שטעלט די טעקסט אָפּטיילונג צו לייענען בלויז, און פאָרסעס די דאַטן אָפּשניט צו זיין זייַט-אַליינד. באַמערקונג - דעם אָפּציע טוט נישט געבן פֿאַרבינדונג קעגן שערד לייברעריז. ניצן- בינאַמיק פֿאַר דעם.

רעזולטאַט

--אָוטפּוט = פּראָדוקציע

ניצן רעזולטאַט ווי די נאָמען פֿאַר די פּראָגראַם געשאפן דורך לד ; אויב די אָפּציע איז נישט ספּעסאַפייד, די נאָמען אַ.אָוט איז געניצט דורך פעליקייַט. דער שריפט באַפֿעל "OUTPUT" קענען אויך ספּעציפיצירן די רעזולטאַט טעקע נאָמען.

-O level

אויב גלייַך איז אַ נומעריק וואַלועס גרעסער ווי נול לד אָפּטימיזעס די פּראָדוקציע. דאָס קען נעמען באטייטיק לענגער און דעריבער מיסטאָמע זאָל נאָר זיין ענייבאַלד פֿאַר די לעצט ביינערי.

-q

--עמיט-רילאָוקס

לאָזן רילאָוקיישאַן סעקשאַנז און אינהאַלט אין גאָר לינגקט עקסעעטעקוטאַבלעס. פּאָסטן לינק אַנאַליסיס און אַפּטאַמאַזיישאַן מכשירים קען דאַרפֿן דעם אינפֿאָרמאַציע אין סדר צו דורכפירן ריכטיק מאַדאַפאַקיישאַנז פון עקסעקוטאַבלעס. דעם רעזולטאטן אין גרעסער עקסעקוטאַבלעס.

דעם אָפּציע איז דערווייַל בלויז געשטיצט אויף ELF פּלאַטפאָרמס.

-r

- רעלאָקאַטעאַבלע

גענעראַטע רעלאָקאַטאַבלע רעזולטאַט --- ד"ה, דזשענערייט אַ רעזולטאַט טעקע וואָס קענען אין דרייַ דינען ווי אַרייַנשרייַב צו לד . דעם איז אָפט גערופן פּאַרטיייש פֿאַרבינדונג . ווי אַ זייַט ווירקונג, אין ינווייראַנמאַנץ אַז שטיצן נאָרמאַל יוניקס מאַגיש נומערן, דעם אָפּציע אויך שטעלן די מאַגיש נומער רעזולטאַט טעקע צו "אָמאַגיק". אויב דעם אָפּציע איז ניט ספּעסאַפייד, אַן אַבסאָלוט טעקע איז געשאפן. ווען פֿאַרבינדונג C + + מגילה, דעם אָפּציע וועט נישט באַשטימען די רעפערמיישאַנז צו קאָנסטרוקטאָרס; צו טאָן דאָס, נוצן -ער .

ווען אַן אַרייַנשרייַב טעקע טוט נישט האָבן די זעלבע פֿאָרמאַט ווי דער רעזולטאַט טעקע, טיילמאָליק פֿאַרבינדונג איז בלויז געשטיצט אויב אַז אַרייַנשרייַב טעקע טוט נישט אַנטהאַלטן קיין רילאָוקיישאַנז. אַנדערש רעזולטאַט פאָרמאַץ קענען האָבן ווייַטער ריסטריקשאַנז; פֿאַר בייַשפּיל עטלעכע "אַ.אָוט" -באַסעד פאָרמאַץ טאָן ניט שטיצן פּאַרטיייש פֿאַרבינדונג מיט אַרייַנשרייַב טעקעס אין אנדערע פאָרמאַץ בייַ אַלע.

דעם אָפּציע טוט די זעלבע זאַך ווי .

פילענאַמע

--just-סימבאָלס = פילענאַמע

לייענען סימבאָל נעמען און זייער ווענדט פון טעקע נאָמען , אָבער טאָן ניט רילאָוקייט עס אָדער אַרייַננעמען עס אין די פּראָדוקציע. דאָס אַלאַוז דיין פּראָדוקציע טעקע צו אָפּשיקן סימבאַליקלי צו אַבסאָלוט לאָוקיישאַנז פון זיקאָרן דיפיינד אין אנדערע מגילה. איר קענען נוצן דעם אָפּציע מער ווי איין מאָל.

פֿאַר קאַמפּאַטאַבילאַטי מיט אנדערע עלף לינקערס, אויב די אָפּציע איז נאכגעגאנגען דורך אַ וועגווייַזער נאָמען, אלא ווי אַ טעקע נאָמען, עס איז באהאנדלט ווי די -רפּאַטה אָפּציע.

- סטריפּ-אַלע

אָמט אַלע סימבאָל אינפֿאָרמאַציע פון ​​די רעזולטאַט טעקע.

-S

- סטריפּ-דעבוג

יבערבייַטן דיבאַגגער סימבאָל אינפֿאָרמאַציע (אָבער ניט אַלע סימבאָלס) פון די רעזולטאַט טעקע.

-t

- דרייען

דרוקן די נעמען פון די אַרייַנשרייַב טעקעס ווי לד פּראָצעס זיי.

-T scriptfile

-סקריפּט = סקריפּפילע

ניצן סקריפּפילע ווי די לינקער שריפט. דעם שריפט ריפּלייסט לד 's פעליקייַט לינדער שריפט (אלא ווי צו לייגן עס), אַזוי קאָממפילע מוזן ספּעציפיצירן אַלץ נייטיק צו באַשרייַבן די רעזולטאַט טעקע. אויב סקריפּטפילע טוט נישט עקסיסטירן אין דעם קראַנט וועגווייַזער, "לד" קוקט פֿאַר אים אין די דירעקטעריז ספּעסאַפייד דורך קיין פּראָסעסטינג- ל אָפּציעס. Multiple -T options accumulate.

סימבאָל

- טאָגפינעד = סימבאָל

פאָרס סימבאָל צו זיין אריין אין דער רעזולטאַט טעקע ווי אַ ומענדיקייַט סימבאָל. טאן דעם קען, למשל, צינגל פֿאַרבינדונג פון נאָך מאַדזשולז פון נאָרמאַל לייברעריז. קען זיין ריפּיטיד מיט פאַרשידענע אָפּציע אַרגומענטן צו אַרייַן נאָך ומענדיקייַט סימבאָלס. דעם אָפּציע איז עקוויוואַלענט צו די "ויסבייַטן" לינקער שריפט באַפֿעל.

-Ur

פֿאַר עפּעס אַנדערש ווי C + + מגילה, דעם אָפּציע איז עקוויוואַלענט צו : עס דזשענערייץ רילאָוקאַטאַבאַל רעזולטאַט --- ד"ה, אַ רעזולטאַט טעקע וואָס קענען אין דרייען דינען ווי אַרייַנשרייַב צו לד . ווען פֿאַרבינדונג C + + מגילה, -איר גיט רעזידענטשאַל באציונגען צו קאָנסטרוקטאָרס, ניט ענלעך . עס טוט נישט אַרבעטן צו נוצן -ער אויף טעקעס וואָס זענען זיך פארבונדן מיט . אַמאָל די קאָנסטרוקטאָר טיש איז געבויט, עס קען נישט זיין מוסיף צו. ניצן - נאָר בלויז פֿאַר די לעצט פּאַרטייאַל לינק, און פֿאַר די אנדערע.

--וניק [= אָפּטיילונג ]

קרעאַטעס אַ באַזונדער רעזולטאַט אָפּטיילונג פֿאַר יעדער אַרייַנשרייַב אָפּטיילונג וואָס ריכטן אָפּטיילונג , אָדער אויב די אַפּשאַנאַל ווילדקאַרד סעקשאַן אַריינז איז פעלנדיק, פֿאַר יעדער אָרפאַני אַרייַנשרייַב אָפּטיילונג. אַ אָרפאַניק אָפּטיילונג איז איינער נישט ספּאַסיפיקלי דערמאנט אין אַ לינקער שריפט. איר קענען נוצן דעם אָפּציע קייפל מאל אויף די באַפֿעל שורה; עס פּריווענץ די נאָרמאַל מערדזשינג פון אַרייַנשרייַב סעקשאַנז מיט די זעלבע נאָמען, אָוווערריידינג רעזולטאַט אָפּטיילונג אַסיינמאַנץ אין אַ לינקער שריפט.

-v

--version

-V

ווייַז די ווערסיע נומער פֿאַר לד . די -V אָפּציע אויך רשימות די געשטיצט עמולאַטיאָנס.

-קס

- דיסקאַווערז אַלע

ויסמעקן אַלע היגע סימבאָלס.

-X

- דיסקאַווערז-לאָוקאַלז

ויסמעקן אַלע צייַטווייַליק היגע סימבאָלס. פֿאַר רובֿ טאַרגאַץ, דאָס איז אַלע היגע סימבאָלס וועמענס נעמען אָנהייבן מיט ל .

-יי סימבאָל

- טראַסע-סימבאָל = סימבאָל

דרוק די נאָמען פון יעדער לינגקט טעקע אין וואָס סימבאָל איז אויסגעקליבן. דעם אָפּציע קען זיין געגעבן קיין נומער פון מאל. אויף פילע סיסטעמס עס איז נייטיק צו באַפרייַען אַן אַנדערסקאָר.

דעם אָפּציע איז נוצלעך ווען איר האָבן אַן ונדעפינעד סימבאָל אין דיין לינקס אָבער טאָן ניט וויסן ווו דער רעפֿערענץ איז קומענדיק פון.

וועג

לייג דעם וועג צו די פעליקייַט ביבליאָטעק זוכן וועג. דעם אָפּציע יגזיסץ פֿאַר סאָלאַריס קאַמפּאַטאַבילאַטי.

-z keyword

די דערקענט שליסלען זענען "יניטפירסט", "ינטערפּאָסע", "מאַסלאַסטרטר", "nodefaultlib", "nodelete", "nodlopen", "nodump", "now", "origin", "combreloc", "nocombreloc" און "nocopyreloc ". די אנדערע טערמינען זענען איגנאָרירט פֿאַר סאָלאַריס קאַמפּאַטאַבילאַטי. "יניטפאָרסט" מאַרקס די כייפעץ צו זיין ינישיייטיד ערשטער בייַ רונטימע איידער קיין אנדערע אַבדזשעקץ. "נאָטעפלעססליב" מארק די כייפעץ אַז די זוכן פֿאַר דיפּענדאַנסיז פון דעם כייפעץ וועט איגנאָרירן די נאָדל טיש ינטערספּאָוזד איידער אַלע סימבאָלס אָבער די ערשטיק עקסעקוטאַבלע "Loadfltr" מארק דער כייפעץ אַז זיין פילטעעס ווערן פּראַסעסינג מיד אין רונטימע. קיין פעליקייַט ביבליאָטעק זוכן פּאַטס. "נאָדעלעטע" מאַרקס די כייפעץ זאָל נישט זיין אַנלאַקט בייַ רונטימע. "נאָדלאָפּען" מאַרקס די כייפעץ נישט בנימצא צו "דלאָפּען". "נאָדומפּ" מאַרקס די כייפעץ קענען נישט זיין דומפּעד דורך "דלדומפּ". "איצט" מארק די כייפעץ מיט דעם ניט-פויל רונטימע ביינדינג. "אָנהייב" מאַרקס די כייפעץ קען אַנטהאַלטן $ ORIGIN. "דיפס" דיסאַלאָוז אַנפינישט סימבאָלס. "מולדעפס" אַלאַוז קייפל זוך. "קאָמברעלאָק" קאַמביינז קייפל רילאָו סעקשאַנז און סאָרץ זיי צו מאַכן דינאַמיש סימבאָל לוקאַפּ קאַטשינג מעגלעך.

"נאָקאָמברעלאָק" דיסייבאַלז קייפל רילאָו סעקשאַנז קאַמביינינג. "נאָקאָפּירעלאָק" דיסייבאַלז פּראָדוקציע פון ​​קאָפּיע רילאָוז.

- ( אַרקייווז -)

--סטאַרט-גרופּע אַרקייווז - ענד-גרופּע

די אַרקייווז זאָל זיין אַ רשימה פון אַרקייוו טעקעס . זיי קען זיין אָדער יקספּלויטיד טעקע נעמען, אָדער אָפּציעס.

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

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

- אַקסעפּט-אומבאַקאַנט-אַרייַנשרייַב אַרטש

- ניט-אָננעמען-אומבאַקאַנט-אַרייַנשרייַב אַרטש

דערציילט די לינקער צו אָננעמען אַרייַנשרייַב טעקעס וואָס אַרקאַטעקטשער קענען נישט דערקענען. דער געדאַנק איז אַז דער באַניצער ווייסט וואָס זיי זענען טאן און דיליבראַטלי וויל צו לינק אין די אומבאַקאַנט אַרייַנשרייַב טעקעס. דעם איז די פעליקייַט אָנפירונג פון די לינקער, איידער מעלדונג 2.14. די פעליקייַט אָפּפירונג פון מעלדונג 2.14 אַנווערדז איז צו אָפּזאָגן אַזאַ אַרייַנשרייַב טעקעס, און דעריבער דער - די -אויסדריקן-אומבאַקאַנט-אַרייַנשרייַב-עראָו אָפּציע איז צוגעגעבן צו ומקערן די אַלט נאַטור.

-זאַגער קיווערד

דעם אָפּציע איז איגנאָרירט פֿאַר SunOS קאַמפּאַטאַבילאַטי .

-Bdynamic

-די

-קאַלל_שאַרעד

לינק קעגן דינאַמיש לייברעריז. דאָס איז בלויז באַטייַטיק אויף פּלאַטפאָרמס פֿאַר וואָס שערד לייברעריז זענען געשטיצט. דעם אָפּציע איז נאָרמאַלי די פעליקייַט אויף אַזאַ פּלאַטפאָרמס. די פאַרשידענע וועריאַנץ פון דעם אָפּציע זענען פֿאַר קאַמפּאַטאַבילאַטי מיט פארשידענע סיסטעמען. איר קענען נוצן דעם אָפּציע קייפל מאל אויף די באַפֿעלן שורה: עס אַפעקץ ביבליאָטעק זוכן פֿאַר- ל אָפּציעס וואָס נאָכפאָלגן עס.

-Bgroup

שטעלן די "DF_1_GROUP" פאָן אין די "דט_פלאַגס_1" פּאָזיציע אין די דינאַמיש אָפּטיילונג. דאס זאָגט די רונטימע לינקער צו שעפּן לוקאַפּס אין דעם כייפעץ און זייַן דיפּענדאַנסיז צו זיין געטאן בלויז ין דער גרופּע. - ניט-ימפּידיד איז ימפּלייד. דעם אָפּציע איז בלויז באַטייַטיק אויף עלף פּלאַטפאָרמס וואָס שטיצן שערד לייברעריז .

-באַסטיק

-דן

-non_shared

-סטאַסט

דו זאלסט נישט לינק קעגן שערד לייברעריז. דאָס איז בלויז באַטייַטיק אויף פּלאַטפאָרמס פֿאַר וואָס שערד לייברעריז זענען געשטיצט. די פאַרשידענע וועריאַנץ פון דעם אָפּציע זענען פֿאַר קאַמפּאַטאַבילאַטי מיט פארשידענע סיסטעמען. איר קענען נוצן דעם אָפּציע קייפל מאל אויף די באַפֿעלן שורה: עס אַפעקץ ביבליאָטעק זוכן פֿאַר- ל אָפּציעס וואָס נאָכפאָלגן עס.

-Bsymbolic

ווען שאפן אַ שערד ביבליאָטעק, בינדן רעפערענצן צו גלאבאלע סימבאָלס צו די דעפֿיניציע אין די שערד ביבליאָטעק, אויב עס איז קיין. נאָרמאַלע, עס איז מעגלעך פֿאַר אַ פּראָגראַם לינגקט קעגן אַ שערד ביבליאָטעק צו אָווועררייד די דעפֿיניציע ין די שערד ביבליאָטעק. דעם אָפּציע איז בלויז באַטייַטיק אויף עלפפּלאַטפאָרמס וואָס שטיצן שערד לייברעריז.

--שוק-סעקשאַנז

- ניט-טשעק-סעקשאַנז

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

--cref

רעזולטאַט אַ קרייַז דערמאָנען טיש. אויב אַ לינקער טעקע טעקע איז זייַענדיק דזשענערייטאַד, די קרייַז דערמאָנען טיש איז געדרוקט צו די מאַפּע טעקע. אַנדערש עס איז געדרוקט אויף די סטאַנדאַרט רעזולטאַט.

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

- ניטאָ-דעפינירן-פּראָסט

דעם אָפּציע ינכיבאַץ די אַסיינמאַנט פון אַדרעסעס צו פּראָסט סימבאָלס. די שריפט באַפֿעל "INHIBIT_COMMON_ALLOCATION" האט די זעלבע ווירקונג.

די - ניטאָ-דעפינירן-פּראָסט אָפּציע אַלאַוז דיאַפּופּן די באַשלוס צו באַשטימען ווענדאָרס צו קאָממאָן סימבאָלס פון די ברירה פון דער רעזולטאַט טעקע טיפּ; אַנדערש אַ ניט-רעלאָקאַטאַבלע רעזולטאַט טיפּ קראַפט אַסיינינג ווענדט צו קאָממאָן סימבאָלס. ניצן - ניטאָ-דעפינירן-פּראָסט אַלאַוז פּראָסט סימבאָלס וואָס זענען רעפערענסט פון אַ שערד ביבליאָטעק צו זיין אַסיינד אַדרעסעס בלויז אין די הויפּט פּראָגראַם. דעם ילימאַנייץ די אַניוזד דופּליקאַט פּלאַץ אין די שערד ביבליאָטעק, און אויך פּריווענץ קיין מעגלעך צעמונג איבער די ריזאַלטינג צו די פאַלש דופּליקאַט ווען עס זענען פילע דינאַמיש מאַדזשולז מיט ספּעשאַלייזד זוכן פּאַטס פֿאַר רונטימע סימבאָל האַכלאָטע.

--defsym symbol = expression

שאַפֿן אַ גלאבאלע סימבאָל אין דער רעזולטאַט טעקע, מיט דעם אַבסאָלוט אַדרעס געגעבן דורך אויסדרוק . איר קענען נוצן דעם אָפּציע ווי פילע מאל ווי נייטיק צו באַשטימען קייפל סימבאָלס אין די באַפֿעל שורה. א באגרענעצט פאָרעם פון אַריטמעטיק איז געשטיצט פֿאַר דער אויסדרוק אין דעם קאָנטעקסט: איר קען געבן אַ העקסאַדעסימאַל קעסיידערדיק אָדער די נאָמען פון אַ יגזיסטינג סימבאָל, אָדער נוצן "+" און "-" צו לייגן אָדער אַראָפּרעכענען העקסאַדעסימאַל קאַנסטאַנץ אָדער סימבאָלס. אויב איר דאַרפֿן מער יקספּיריאַנסט עקספּרעססיאָנס, באַטראַכטן ניצן די לינקער באַפֿעל שפּראַך פון אַ שריפט. באַמערקונג: עס זאָל זיין קיין ווייַס פּלאַץ צווישן סימבאָל , די יקוואַלז צייכן (`` = ''), און אויסדרוק .

- דעמאַנגע [= סטיל ]

-no-demangle

די אָפּציעס קאָנטראָלירן צי צו דעמאַנגעל סימבאָל נעמען אין טעות אַרטיקלען און אנדערע רעזולטאַט. ווען דער לינקער איז דערציילט צו דערמאָנונג, עס פרוווט צו באַקענען סימבאָל נעמען אין אַ לייאַבאַל מאָדע: עס סטריפּס לידינג ונדערסאָרעס אויב זיי זענען געניצט דורך די כייפעץ טעקע פֿאָרמאַט, און קאַנווערץ C + + מאַנגגאַלד סימבאָל נעמען אין באַניצער לייאַבאַל נעמען. פאַרשידענע זאַמלערס האָבן פאַרשידענע מאַנגלינג סטיילז. די אַפּשאַנאַל דעמאַנגלינג נוסח אַרגומענט קענען זיין געניצט צו קלייַבן אַ צונעמען דעמאַנגלינג נוסח פֿאַר דיין קאַמפּיילער. די לינקער וועט דעמאַנגעלד דורך פעליקייַט אויב די סוויווע בייַטל COLLECT_NO_DEMANGLE איז באַשטימט. די אָפּציעס קענען זיין געניצט צו אָווועררייד די פעליקייַט.

- דינאַמיש-לינק טעקע

שטעלן די נאָמען פון די דינאַמיש לינקער. דעם איז בלויז באַטאָנען ווען דזשענערייטינג דינאַמיקאַללי לינגקט עלף עקסעקוטאַבלעס. די פעליקייַט דינאַמיש לינקער איז נאָרמאַלי ריכטיק; טאָן ניט נוצן עס אויב איר וויסן וואָס איר טאָן.

--embedded-relocs

דעם אָפּציע איז בלויז באַטייַטיק ווען פֿאַרבינדונג פון מיפּס עמבעדיד פּיק קאָד, דזשענערייטאַד דורך די -מעמבעדדיד-פּיק אָפּציע צו די GNU קאַמפּיילער און אַסעמבלי. עס זייַנען די לינקער צו שאַפֿן אַ טיש וואָס קען זיין געניצט אין רונטימע צו רילאָוקייט קיין דאַטן וואָס איז סטאַטיסטיש ינישיייטיד צו טייַטל וואַלועס. זען די קאָד אין טעסטויטויטע / לד-עמפּיק פֿאַר פרטים.

- פאַטאַל-וואָרנינגז

מייַלע אַלע וואָרנינגז ווי ערראָרס .

--פאָרסע-עקסע-סאַפיקס

מאַכן זיכער אַז אַ רעזולטאַט טעקע האט אַ. עקסע סאַפיקס.

אויב אַ הצלחה געבויט גאָר לינגקט רעזולטאַט טעקע טוט נישט האָבן אַ ". עקסע " אָדער ". דלל " suffix, דעם אָפּציע פאָרסעס די לינקער צו נאָכמאַכן די רעזולטאַט טעקע צו איינער פון די זעלבע נאָמען מיט אַ ". עקסע" סאַפיקס. דעם אָפּציע איז נוציק ווען איר נוצן אַנאַמייטאַד וניקס מאַקעפילעס אויף אַ מיקראָסאָפט ווינדאָוז באַלעבאָס, ווייַל עטלעכע ווערסיעס פון ווינדאָוז וועט נישט לויפן אַ בילד אויב עס ענדס אין אַ ". עקסע" סאַפיקס.

- ניט-גק-סעקשאַנז

- גק-סעקשאַנז

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

- העלפּ

דרוק אַ קיצער פון די באַפֿעלן שורה אָפּציעס אויף די סטאַנדאַרט רעזולטאַט און אַרויסגאַנג.

--target-help

דרוק אַ קיצער פון אַלע ציל ספּעציפיש אָפּציעס אויף די נאָרמאַל רעזולטאַט און אַרויסגאַנג.

-אפ מאַפּפילע

דרוק אַ לינק מאַפּע צו דער טעקע מאַפּפילע . זען די באַשרייַבונג פון די -O- אָפּציע, אויבן.

- ניט-האַלטן-זכּרון

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

- ניט-דיפיינד

-z defs

נאָרמאַלי ווען שאַפֿן אַ ניט-סימבאָליש שערד ביבליאָטעק, איר קענען זיין ערלויבט און דיפיינד סימבאָלס און לינקס דורך די רונטימע לאָודז. די אָפּציעס דיסאַלאָוז אַזאַ ומלעגאַל סימבאָלס.

--אַללאָוו-קייפל-דעפֿיניציע

-ז מאַלפּע

נאָרמאַלי ווען אַ סימבאָל איז דיפיינד קייפל מאל, די לינקער וועט באַריכט אַ פאַטאַל טעות. די אָפּציעס לאָזן קייפל זוך און דער ערשטער דעפֿיניציע וועט זיין געוויינט.

--אַללאָוו-שלייב-ונדעפינעד

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

--no-undefined-ווערסיע

נאָרמאַלי ווען אַ סימבאָל איז אַן ונדעפינעד ווערסיע, די לינקסער וועט איגנאָרירן עס. דעם אָפּציע דיסאַלאָוז סימבאָלס מיט ונדעפינעד ווערסיע און אַ פאַטאַל טעות וועט זיין ארויס אַנשטאָט.

- ניט-וואָרענען-מיסמאַטש

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

- ניט-גאַנץ-אַרקייוו

קער אַוועק די ווירקונג פון די - וואָולטידזש אַרקייוו אָפּציע פֿאַר סאַבסאַקוואַנט אַרקייוו טעקעס.

--noinhibit-exec

האַלטן די עקסעקוטאַבלע רעזולטאַט טעקע ווען עס איז נאָך נוצלעך. נאָרמאַללי, די לינקער וועט נישט פּראָדוצירן אַ רעזולטאַט טעקע אויב עס ינקאַונטערז ערראָרס בעשאַס די לינק פּראָצעס; עס עקסייז אָן שרייַבן אַ רעזולטאַט טעקע ווען עס ישוז קיין טעות ווהאַצאָעווער.

-nostdlib

בלויז זוכן ביבליאָטעק דירעקטעריז בישליימעס ספּעסאַפייד אויף די באַפֿעל שורה. ביבליאָטעק דיירעקטעריז ספּעסאַפייד אין לינקס סקריפּס (אַרייַנגערעכנט לינקער סקריפּס ספּעסאַפייד אויף די באַפֿעל שורה) זענען איגנאָרירט.

- פֿאָרמאַט רעזולטאַט-פֿאָרמאַט

לד קען זיין קאַנפיגיערד צו שטיצן מער ווי איין טיפּ פון כייפעץ טעקע. אויב דיין לד איז קאַנפיגיערד דעם וועג, איר קענען נוצן די -אָפאָרמאַט אָפּציע צו ספּעציפיצירן די ביינערי פֿאָרמאַט פֿאַר די רעזולטאַט כייפעץ טעקע. אפילו אויב לד איז קאַנפיגיערד צו שטיצן אנדער ברירה כייפעץ פאָרמאַץ, איר טאָן נישט יוזשאַוואַלי דאַרפֿן צו ספּעציפיצירן דעם, ווי לד זאָל זיין קאַנפיגיערד צו פּראָדוצירן ווי אַ פעליקייַט רעזולטאַט פֿאָרמאַט די מערסט געוויינטלעך פֿאָרמאַט אויף יעדער מאַשין. רעזולטאַט-פֿאָרמאַט איז אַ טעקסט שטריקל, די נאָמען פון אַ באַזונדער פֿאָרמאַט געשטיצט דורך די בפד לייברעריז. (איר קענען רשימה די בנימצא ביינערי פאָרמאַץ מיט אָבדזשדומפּ-איך .) די שריפט באַפֿעל "OUTPUT_FORMAT" קענען אויך ספּעציפיצירן די פּראָדוקציע פֿאָרמאַט, אָבער דעם אָפּציע אָוווערריידז עס.

-קמאַגיק

דעם אָפּציע איז איגנאָרירט פֿאַר לינוקס קאַמפּאַטאַבילאַטי.

-Qy

דעם אָפּציע איז איגנאָרירט פֿאַר סוור 4 קאַמפּאַטאַבילאַטי.

--אָפּרוען

אַ אָפּציע מיט מאַשין אָפענגיק יפעקס. דעם אָפּציע איז בלויז געשטיצט אויף אַ ביסל טאַרגאַץ.

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

אויף עטלעכע פּלאַטפאָרמס די לינק צייַט גלאבאלע אָפּטימיזאַטיאָנס קען מאַכן סימבאָליש דיבאַגינג פון די ריזאַלטינג עקסעקוטאַבלע אוממעגלעך. דעם איז באקאנט צו זיין דער פאַל פֿאַר די Matsushita MN10200 און MN10300 משפּחה פון פּראַסעסערז.

אויף פּלאַטפאָרמס ווו דאָס איז נישט געשטיצט, - רילאַקס איז אנגענומען, אָבער איגנאָרירט.

- באַשטעטיק-סימבאָלס טעקע טעקע נאָמען

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

--retain-סימבאָלס-טעקע טוט נישט אַוועקוואַרפן ומענדיקייַט סימבאָלס, אָדער סימבאָלס דארף פֿאַר רילאָוקיישאַנז.

איר קען בלויז ספּעציפיצירן --retain-סימבאָלס-טעקע אַמאָל אין די באַפֿעלן שורה. עס אָוווערריידז און .

-רפּאַטה דיר

לייג אַ וועגווייַזער צו די רונטימע ביבליאָטעק זוכן וועג. דעם איז געניצט ווען פֿאַרבינדונג אַן ELFexecutable מיט שערד אַבדזשעקץ. כל- רפּאַטה אַרגומענטן זענען קאַנקאַטאַנייטיד און דורכגעגאנגען צו די רונטימע לינקסער, וואָס ניצט זיי צו געפינען שערד אַבדזשעקץ בייַ רונטימע. די -רפּאַטה אָפּציע איז אויך געניצט ווען לאָקאַטינג שערד אַבדזשעקץ וואָס זענען דארף דורך שערד אַבדזשעקץ בישליימעס אַרייַנגערעכנט אין די לינקס; זען די באַשרייַבונג פון די -רפּאַטה-לינק אָפּציע. אויב -רפּאַטה איז נישט געניצט ווען פֿאַרבינדונג פון אַן עלף עקסעקוטאַבלע, די אינהאַלט פון די סוויווע בייַטעוודיק "לד_רונ_פּאַטה" וועט זיין געניצט אויב עס איז דיפיינד.

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

פֿאַר קאַמפּאַטאַבילאַטי מיט אנדערע עלף לינקערס, אויב די אָפּציע איז נאכגעגאנגען דורך אַ וועגווייַזער נאָמען, אלא ווי אַ טעקע נאָמען, עס איז באהאנדלט ווי די -רפּאַטה אָפּציע.

-רפּאַטה-לינק דיר

ווען ניצן ELF אָדער SunOS, איינער שערד ביבליאָטעק קען דאַרפן אנדערן. דעם כאַפּאַנז ווען אַ "ld -shared" לינק כולל אַ שערד ביבליאָטעק ווי איינער פון די אַרייַנשרייַב טעקעס.

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

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

דער לינקער ניצט די ווייַטערדיק זוכן פּאַטס צו געפינען די פארלאנגט שערד לייברעריז.

1.

קיין דירעקטעריז ספּעסאַפייד דורך -רפּאַטה-לינק אָפּציעס.

2.

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

3.

אויף אַן עלף סיסטעם, אויב די- רפּאַטה און "רפּאַטה-לינק" אָפּציעס זענען נישט געוויינט, זוכן די אינהאַלט פון די סוויווע בייַטעוודיק "לד_רונ_פּאַטה". עס איז בלויז געבוירן לינקער.

4.

אויף SunOS, אויב די -Rpath אָפּציע איז ניט געוויינט, זוכן קיין דירעקטעריז ספּעסאַפייד ניצן -L אָפּציעס.

5.

פֿאַר אַ געבוירענער לינקער, די אינהאַלט פון די סוויווע בייַטעוודיק "LD_LIBRARY_PATH".

6.

פֿאַר אַ געבוירענער עלף לינקער, די דירעקטעריז אין "דט_רונפּאַטה" אָדער "דט_רפּאַטה" פון אַ שערד ביבליאָטעק זענען געזוכט פֿאַר שערד לייברעריז דארף דורך עס. די "DT_RPATH" איינסן זענען איגנאָרירט אויב "DT_RUNPATH" איינסן זענען.

7.

די פעליקייַט דיירעקטעריז, נאָרמאַלי / ליב און / וסר / ליב .

8.

פֿאַר אַ געבוירענער לינקער אויף אַ עלף סיסטעם, אויב די טעקע / עטק / לד.סאָ.קאָנף יזאָלז, די רשימה פון דירעקטעריז געפונען אין דעם טעקע.

אויב די פארלאנגט שערד ביבליאָטעק איז ניט געפונען, דער לינקער וועט אַרויסגעבן אַ ווארענונג און פאָרזעצן מיט די לינק.

-שאַרעד

-Bshareable

שאַפֿן אַ שערד ביבליאָטעק. דאָס איז דערווייַל בלויז געשטיצט אויף ELF, XCOFF און SunOS platforms. אויף SunOS, די לינקער וועט אויטאָמאַטיש מאַכן אַ שערד ביבליאָטעק אויב די אָפּציע איז ניט געוויינט און עס זענען וממיגלעך סימבאָלס אין דעם לינק.

- פּלאַץ-פּראָסט

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

- שפּאַלטן-דורך-טעקע [ גרייס ]

ענלעך צו - שפּאַלטן-דורך-רעלאָק אָבער קריייץ אַ נייַ רעזולטאַט אָפּטיילונג פֿאַר יעדער אַרייַנשרייַב טעקע ווען די גרייס איז ריטשט. גרייס דיפאָלץ צו אַ גרייס פון 1 אויב ניט געגעבן.

- שפּאַלטן-דורך-רעלאָק [ ציילן ]

פרוווט צו שאַפֿן עקסטרע סעקשאַנז אין דער רעזולטאַט טעקע אַזוי אַז קיין איין רעזולטאַט אָפּטיילונג אין דער טעקע כּולל מער ווי ציילן רילאָוקיישאַנז. דעם איז נוציק ווען דזשענערייטינג ריזיק רילאָוקאַטאַבאַל טעקעס פֿאַר דאַונלאָודינג אין זיכער פאַקטיש צייַט קערנאַלז מיט די קאָפף כייפעץ טעקע פֿאָרמאַט; זינט קאָפפקאַננאָט פאָרשטעלן מער ווי 65535 רילאָוקיישאַנז אין אַ איין אָפּטיילונג. באַמערקונג אַז דאָס וועט פאַרלאָזן צו אַרבעטן מיט כייפעץ טעקע פאָרמאַץ וואָס טאָן ניט שטיצן אַרביטראַריש סעקשאַנז. די לינקער וועט נישט ספּליט זיך יחיד אַרייַנשרייַב סעקשאַנז פֿאַר רעדיסטריבוטיאָן, אַזוי אויב אַ איין אַרייַנשרייַב אָפּטיילונג כּולל מער ווי ציילן רילאָוקיישאַנז איינער רעזולטאַט אָפּטיילונג וועט אַנטהאַלטן אַז פילע רילאָוקיישאַנז. ציילן די פעלדער צו אַ ווערט פון 32768.

- סטאַץ

צונויפרעכענען און אַרויסווייַזן סטאַטיסטיק וועגן די אָפּעראַציע פון ​​די לינקער, אַזאַ ווי דורכפירונג צייט און זיקאָרן באַניץ.

- טראַדישאַנאַל-פֿאָרמאַט

פֿאַר עטלעכע טאַרגאַץ, די רעזולטאַט פון לד איז אַנדערש אין עטלעכע וועגן פון די רעזולטאַט פון עטלעכע יגזיסטינג לינקס. דעם יבערבייַט ריקוועס לד צו נוצן דעם טראדיציאנעלן פֿאָרמאַט אַנשטאָט

פֿאַר בייַשפּיל, אויף SunOS, ld combines duplicate entries in the symbol string table. דעם קענען רעדוצירן די גרייס פון אַ רעזולטאַט טעקע מיט פול דעבוגינג אינפֿאָרמאַציע דורך איבער 30 פּראָצענט. צום באַדויערן, די SunOS "dbx" פּראָגראַם קענען נישט לייענען דעם ריזאַלטינג פּראָגראַם ("גדב" האט קיין קאָנפליקט). די - טראַדיציאָנעל-פֿאָרמאַט יבערבייַט דערציילט לד צו נישט פאַרבינדן דופּליקאַט איינסן.

--section-start אָפּטיילונג = אָרג

געפינען אַ אָפּטיילונג אין דער רעזולטאַט טעקע בייַ די אַבסאָלוט אַדרעס געגעבן דורך אָרג . איר קענען נוצן דעם אָפּציע ווי פילע מאל ווי נייטיק צו געפינען עטלעכע סעקשאַנז אין די באַפֿעל שורה. אָרג מוזן זייַן אַ איין העקסאַדעסימאַל ינטעגער; פֿאַר קאַמפּאַטאַבילאַטי מיט אנדערע לינקס, איר קען דורכפירן די לידינג 0 קס יוזשאַוואַלי פארבונדן מיט העקסאַדעסימאַל וואַלועס. באַמערקונג: עס זאָל זיין קיין ווייַס פּלאַץ צווישן אָפּטיילונג , די יקוואַלז צייכן (`` = ''), און אָרג .

-Tbss org

-Tdata org

-טעקסט אָרג

ניצן אָרג ווי די סטאַרטינג אַדרעס פֿאַר --- ריספּעקטיוולי --- דער "בסס", "דאַטן", אָדער "טעקסט" אָפּשניט פון דער רעזולטאַט טעקע. אָרג מוזן זייַן אַ איין העקסאַדעסימאַל ינטעגער; פֿאַר קאַמפּאַטאַבילאַטי מיט אנדערע לינקס, איר קען דורכפירן די לידינג 0 קס יוזשאַוואַלי פארבונדן מיט העקסאַדעסימאַל וואַלועס.

- דלל-ווערבאָוז

--verbose

ווייַז די ווערסיע נומער פֿאַר לד און רשימה די לינקער עמולאַטיאָנס געשטיצט. ווייַז וואָס אַרייַנשרייַב טעקעס קענען און קענען ניט זיין געעפנט. ווייַז די לינקער שריפט זייַענדיק געניצט דורך די לינקער.

--version-script = version-scriptfile

ספּעציפיצירן די נאָמען פון אַ ווערסיע שריפט צו די לינקער. דעם איז בכלל געניצט ווען שאפן שילער לייברעריז צו ספּעציפיצירן נאָך אינפֿאָרמאַציע וועגן דער ווערסיע הירירי פֿאַר דער ביבליאָטעק וואָס איז באשאפן. דעם אָפּציע איז בלויז באַטייַטיק אויף עלף פּלאַטפאָרמס וואָס שטיצן שערד לייברעריז.

--warn-common

וואָרענען ווען אַ פּראָסט סימבאָל איז קאַמביינד מיט אן אנדער פּראָסט סימבאָל אָדער מיט אַ סימבאָל דעפֿיניציע. וניקס לינקערס לאָזן דעם עפּעס סלאַפּי פיר, אָבער לינגגערז אויף עטלעכע אנדערע אַפּערייטינג סיסטעמס טאָן ניט. דעם אָפּציע אַלאַוז איר צו געפֿינען פּאָטענציעל פּראָבלעמס פון קאַמביינינג גלאבאלע סימבאָלס. צום באַדויערן, עטלעכע C לייברעריז ניצן דעם פיר, אַזוי איר קען באַקומען עטלעכע וואָרענען וועגן סימבאָלס אין די לייברעריז און אין דיין מגילה.

עס זענען דרייַ מינים פון גלאבאלע סימבאָלס, יללוסטרירט דאָ דורך C ביישפילן:

int i = 1;

א דעפֿיניציע, וואָס גייט אין די ערשטיקייט דאַטן אָפּטיילונג פון דער רעזולטאַט טעקע.

extern int i;

אַנפינעד דערמאָנען, וואָס טוט ניט אַלאַקייט פּלאַץ. עס מוזן זיין אָדער אַ דעפֿיניציע אָדער אַ פּראָסט סימבאָל פֿאַר די בייַטעוודיק ערגעץ.

int i;

א פּראָסט סימבאָל. אויב עס זענען בלויז (איינער אָדער מער) פּראָסט סימבאָלס פֿאַר אַ בייַטעוודיק, עס גייט אין די וניניטיאַליזעד דאַטן געגנט פון דער רעזולטאַט טעקע. די לינקער מערדזשז קייפל פּראָסט סימבאָלס פֿאַר די זעלבע בייַטעוודיק אין אַ איין סימבאָל. אויב זיי זענען פון פאַרשידענע סיזעס, עס פּיקס די גרעסטן גרייס. די לינקער טורנס אַ פּראָסט סימבאָל אין אַ דעקלאַראַציע, אויב עס איז אַ דעפֿיניציע פון ​​דער זעלביקער בייַטעוודיק.

די --warn-פּראָסט אָפּציע קענען פּראָדוצירן פינף מינים פון וואָרנינגז. יעדער ווארענונג באשטייט פון אַ פּאָר פון שורות: דער ערשטער באשרייבט די סימבאָל נאָר געפּלאָנטערט, און די רגע באשרייבט די פריערדיקע סימבאָל געשטארקט מיט די זעלבע נאָמען. איינער אָדער ביידע פון ​​די צוויי סימבאָלס וועט זיין אַ פּראָסט סימבאָל.

1.

טורנס אַ פּראָסט סימבאָל אין אַ רעפֿערענץ, ווייַל עס איז שוין אַ דעפֿיניציע פֿאַר די סימבאָל.

<טעקע> (<אָפּטיילונג>): ווארענונג: פּראָסט פון `<סימבאָל> 'אָווועררייטיד דורך דעפֿיניציע <טעקע> (<אָפּטיילונג>): ווארענונג: דיפיינד דאָ

2.

טורנס אַ פּראָסט סימבאָל אין אַ רעפֿערענץ, ווייַל אַ שפּעטער דעפֿיניציע פֿאַר דער סימבאָל איז געפּלאָנטערט. דאָס איז די זעלבע ווי די פריערדיקע פאַל, חוץ אַז די סימבאָלס זענען געפּלאָנטערט אין אַ אַנדערש סדר.

<טעקע> (<אָפּטיילונג>): ווארענונג: דעפֿיניציע פון ​​`<סימבאָל> 'אָוווערריידינג פּראָסט <טעקע> (<אָפּטיילונג>): ווארענונג: פּראָסט איז דאָ

3.

מערדזשינג אַ פּראָסט סימבאָל מיט אַ פרייַערדיק זעלביקער-סייזד פּראָסט סימבאָל.

<טעקע> (<אָפּטיילונג>): ווארענונג: קייפל פּראָסט פון `<סימבאָל> '<טעקע> (<אָפּטיילונג>): ווארענונג: פרייַערדיק איז דאָ

4.

מערדזשינג אַ פּראָסט סימבאָל מיט אַ פרייַערדיק גרעסטן פּראָסט סימבאָל.

<טעקע> (<אָפּטיילונג>): ווארענונג: פּראָסט פון `<סימבאָל> 'אָווועררייטיד דורך גרעסערע פּראָסט <טעקע> (<אָפּטיילונג>): ווארענונג: גרעסערע פּראָסט איז דאָ

5.

מערדזשינג אַ פּראָסט סימבאָל מיט אַ פריערדיקן קלענערער פּראָסט סימבאָל. דאָס איז די זעלבע ווי די פריערדיקע פאַל, חוץ אַז די סימבאָלס זענען געפּלאָנטערט אין אַ אַנדערש סדר.

<טעקע> (<אָפּטיילונג>): ווארענונג: פּראָסט פון `<סימבאָל> 'אָוווערריידינג קלענערער פּראָסט <טעקע> (<אָפּטיילונג>): ווארענונג: קלענערער פּראָסט איז דאָ

--warn-constructors

וואָרענען אויב קיין גלאבאלע קאָנסטרוקטאָרס זענען געניצט. דאָס איז בלויז נוציק פֿאַר אַ ביסל כייפעץ טעקע פֿאָרמאַטירונגען. פֿאַר פאָרמאַץ ווי קאַפף אָדער עלף, די לינקער קענען נישט דעטעקט די נוצן פון גלאבאלע קאָנסטרוקטאָרס.

--warn-multiple-gp

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

--warn-once

נאָר וואָרענען אַמאָל פֿאַר יעדער ונדעפינעד סימבאָל, אלא ווי אַמאָל פּער מאָדולע וואָס רעפערס צו אים.

--warn-section-align

Warn אויב די אַדרעס פון אַ רעזולטאַט אָפּטיילונג איז פארענדערט ווייַל פון אַליינמאַנט. טיפּיקאַללי, די אַליינמאַנט וועט זיין באַשטימט דורך אַ אַרייַנשרייַב אָפּטיילונג. דער אַדרעס וועט זיין געביטן אויב עס איז נישט באטייטיק ספּעסאַפייד; אַז איז, אויב די "סעקשאַנז" באַפֿעל טוט נישט ספּעציפיצירן אַ אָנהייב אַדרעס פֿאַר דעם אָפּטיילונג.

--whole-archive

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

צוויי הערות אויב איר נוצן דעם אָפּציע פון ​​גקק: First, gcc does not know about this option, so you have to use -Wl, -whole-archive . צווייטע, טאָן ניט פאַרגעסן צו נוצן -וול-ניט-גאַנץ-אַרקייוו נאָך דיין רשימה פון אַרקייווז, ווייַל גקק וועט לייגן זייַן אייגן רשימה פון אַרקייווז צו דיין לינק און איר קען נישט וועלן דעם פאָן צו ווירקן יענע ווי געזונט.

- ווראַנג סימבאָל

ניצן אַ ראַפּער פונקציאָנירן פֿאַר סימבאָל . קיין ומענדיקייַט רעפֿערענץ צו סימבאָל וועט זיין סאַלווד צו "__ ווראַפּ_סיסטעמע". קיין אַנדערעפינעד דערמאָנען צו "__ רעאַל_סימבאָל" וועט זיין סאַלווד צו סימבאָל .

דעם קענען זיין געניצט צו צושטעלן אַ ראַפּער פֿאַר אַ סיסטעם פונקציאָנירן. די ראַפּער פונקציע זאָל זיין גערופן "__ ווראַפּ_סימבאָל". אויב עס וויל צו רופן די סיסטעם פונקציע, עס זאָל רופן "__ רעאַל_סימבאָל".

דאָ איז אַ טרייוויאַל בייַשפּיל:

void * __ wrap_malloc (int c) {printf ("מאַלאָק גערופן מיט% ld \ n", c); צוריקקומען __ רעאַל_מאַלאָק (c); }

אויב איר פֿאַרבינדט אנדערע קאָד מיט דעם טעקע ניצן - wrap malloc , דאַן אַלע רופט צו "מאַלאָק" וועט רופן די פונקציע "__ wrap_malloc" אַנשטאָט. דער רוף צו "__ רעאַל_מאַלאָק" אין "__ ווראַפּ_אַללאָק" וועט רופן דעם פאַקטיש "מאַלאָק" פאַנגקשאַנז.

איר קען ווינטשן צו צושטעלן אַ "__ רעאַל_מאַלאָק" פונקציאָנירן, אַזוי אַז לינקס אָן די - אָפּקלייַב אָפּציע וועט זיין מצליח. אויב איר טאָן דאָס, איר זאָל נישט שטעלן די דעפֿיניציע "__ real_malloc" אין דער זעלביקער טעקע ווי "__ wrap_malloc"; אויב איר טאָן, די אַסעמבלי קענען האַלטן די רופן איידער די לינקער האט אַ געלעגנהייַט צו ייַנוויקלען עס צו "מאַלאָק".

--ענאַבלע-נייַ-דאַגס

- דיסאַבלע-נייַ-דאַגס

דעם לינקער קענען שאַפֿן די נייַ דינאַמיש טאַגס אין עלף. אָבער די עלטערע עלף סיסטעמען קען נישט פֿאַרשטיין זיי. אויב איר ספּעציפיצירן --ענאַבלע-נייַ-דאַגס , די דינאַמיש טאַגס וועט ווערן באשאפן ווי דארף. אויב איר ספּעציפיצירן --דיסאַבלע-נייַ-דאַגס , קיין נייַ דינאַמיש טאַגס וועט ווערן באשאפן. דורך פעליקייַט, די נייַ דינאַמיש טאַגס זענען נישט באשאפן. באַמערקונג אַז די אָפּציעס זענען בלויז בנימצא פֿאַרעלף סיסטעמס.

די י 386 פּע לינקער שטיצט די- שערד אָפּציע, וואָס זענג די רעזולטאַט צו זיין אַ דינאַמיקאַללי לינגקט ביבליאָטעק (דלל) אַנשטאָט פון אַ נאָרמאַל עקסעקוטאַבלע. איר זאָל נעמען די רעזולטאַט "*. דלל" ווען איר נוצן דעם אָפּציע. אין דערצו, די לינקער גאָר שטיצט די נאָרמאַל "*. דעפ" טעקעס, וואָס קען זיין ספּעסאַפייד אויף די לינקער באַפֿעלן שורה ווי אַ כייפעץ טעקע (אין פאַקט, עס זאָל פאָרשטעלן אַרקייווז עס עקספּאָרץ סימבאָלס פון, צו ענשור אַז זיי באַקומען לינגקט אין, נאָר ווי אַ נאָרמאַל כייפעץ טעקע).

אין דערצו צו די אָפּציעס פּראָסט צו אַלע טאַרגאַץ, די י 386 פּע לינקער שטיצן נאָך באַפֿעל שורה אָפּציעס וואָס זענען ספּעציפיש צו די י 386 פּע ציל. אָפּציעס וואָס נעמען וואַלועס קענען זיין אפגעשיידט פון זייער וואַלועס ביי אַ פּלאַץ אָדער אַן גלייַך צייכן.

--add-stdcall-alias

אויב געגעבן, סימבאָלס מיט אַ סטדקאָל סאַפיקס (@ נן ) וועט זיין יקספּאָרטאַד ווי-איז און אויך מיט סאַפיקס סטריפּט.

--באַסע טעקע טעקע

ניצן טעקע ווי דער נאָמען פון אַ טעקע אין וואָס צו שפּאָרן די באַזע ווענדט פון אַלע די רילאָוקיישאַנז דארף פֿאַר דזשענערייטינג דללס מיט דלטאָאָל .

- דלל

שאַפֿן אַ דלל אַנשטאָט פון אַ רעגולער עקסעקוטאַבלע. איר קען אויך נוצן- שערד אָדער ספּעציפיצירן אַ "ביבליאָטעק" אין אַ געגעבן ".דעף" טעקע.

--enable-stdcall-fixup

-דיסאַבלע-סטדקאַלל-פיקסאַפּ

אויב דער לינק געפינט אַ סימבאָל וואָס עס קען נישט סאָלווע, עס וועט פּרווון צו טאָן `` פאַזי פֿאַרבינדונג '' דורך זוך פֿאַר אן אנדער דיפיינד סימבאָל וואָס איז אַנדערש בלויז אין דעם פֿאָרמאַט פון די סימבאָל נאָמען (קדעקל ווס סטדקאַלל) און וועט באַשטימען דעם סימבאָל דורך פֿאַרבינדונג צו די גלייַכן. פֿאַר בייַשפּיל, די ונדעפינעד סימבאָל "_פאָאָ" קען זיין לינגקט צו דער פונקציע "_פאָאָ @ 12", אָדער די ונדעפינעד סימבאָל "_באַר @ 16" זאל זיין פארבונדן מיט די פונקציע "_באַר". ווען די לינקסער טוט דאָס, עס דרוקן אַ ווארענונג, ווי עס זאָל נאָרמאַלי האָבן פארבונדן צו פאַרבינדן, אָבער מאל אַרייַנפיר לייברעריז דזשענערייטאַד פון דריט טיילווייַז דללס זאל דאַרפֿן דעם שטריך צו זיין נוצלעך. אויב איר ספּעציפיצירן --enable-stdcall-fixup , דעם שטריך איז גאָר ינייבאַלד און וואָרנינגז זענען נישט געדרוקט. אויב איר ספּעציפיצירן --דיסאַבלע-סטדקאַלל-פיקסאַפּ , דעם שטריך איז פאַרקריפּלט און אַזאַ מיסמאַטשיז זענען באטראכט צו זיין ערראָרס.

- עקספּאָרט-אַלע-סימבאָלס

אויב געגעבן, אַלע גלאבאלע סימבאָלס אין די אַבדזשעקץ געניצט צו בויען אַ דלל וועט זיין יקספּאָרטאַד דורך די דלל. באַמערקונג אַז דאָס איז די פעליקייַט אויב עס אַנדערש וואָלט נישט זיין קיין יקספּאָרטאַד סימבאָלס. ווען סימבאָלס זענען יקספּליסט עקספּאָרטעד דורך דעפ טעקעס אָדער ימפּליסאַטלי יקספּאָרטאַד דורך פאַנגקשאַנז אַטריביוץ, די פעליקייַט איז נישט אַרויספירן עפּעס אַנדערש, אויב דעם אָפּציע איז געגעבן. באַמערקונג אַז די סימבאָלס "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTStartup @ 12", און "ימפּער_פּטר" וועט נישט ווערן אויטאָמאַטיש יקספּאָרטאַד. אויך סימבאָלס ימפּאָרטיד פון אנדערע דללס וועט ניט זיין ריפּערד, ניט סימבאָלס ספּעסאַפייינג די ינלענדיש אויסלייג דלל ווי די אָנהייב מיט "_העאַד_" אָדער ענדיקן מיט "_ינאַמע". דערצו, קיין סימבאָלס פון "ליגגקק", "ליסטסטד + +", "לעממינגוו 32", אָדער "crtX.o" וועט זיין יקספּאָרטאַד. סימבאָלן וועמענס נעמען אָנהייבן מיט "__ רטטי_" אָדער "__builtin_" וועט ניט זיין יקספּאָרטאַד, צו העלפן מיט C + + דללס. צום סוף, עס איז אַ ברייט רשימה פון סיגווין-פּריוואַט סימבאָלס וואָס זענען נישט יקספּאָרטאַד (דאָך, דאָס אַפּלייז אויף די בנין דללס פֿאַר סיגווין טאַרגאַץ).

די סיגווין-יקסקלודז זענען: "_סיגווין_דלל_ענטרי @ 12", "_סיגווין_קאָנטראָ_קאָממאָן @ 8", "_סיגווין_נאָנסיגווינס_דלל_ענטרי @ 12", "_פמאָדע", "_ימפּורע_פּטר", "סיגווין_אַטטאַטש_דלל", "סיגווין_פּרעמאַין 0", "סיגווין_פּרעמאַין 1", "סיגווין_פּרעמאַין 2", "סיגווין_פּרעמאַין 3 ", און" ענוויראָן ".

- ויסשליסן סימבאָלס סימבאָל , סימבאָל , ...

באַשטימט אַ רשימה פון סימבאָלס וואָס זאָל נישט זיין אויטאָמאַטיש יקספּאָרטאַד. די סימבאָל נעמען קען זיין דעלימיטעד דורך קאָמאַס אָדער קאָלאָנעס.

- ויסשליסיק-פֿרייַ פריי , פּאָטער , ...

ספּעסאַפייז אַ רשימה פון אַרקייווז לייברעריז וואָס סימבאָלס זאָל נישט ווערן אויטאָמאַטיש יקספּאָרטאַד. די ביבליאָטעק נעמען קען זיין דעלימיטעד דורך קאָמאַס אָדער קאָלאָנעס. ספּעציפיצירן "- עקקלודע-ליווז אַלע" יקסקלודז סימבאָלס אין אַלע אַרקייווז לייברעריז פון אָטאַמאַטיק אַרויספירן. סימבאָלס באטייטיק ליסטעד אין אַ. דעפ טעקע זענען נאָך יקספּאָרטאַד, ראַגאַרדלאַס פון דעם אָפּציע.

- טעקע-אַליינמאַנט

ספּעציפיצירן די טעקע אַליינמאַנט. סעקשאַנז אין דער טעקע וועט שטענדיק אָנהייבן אין טעקע אָפסעץ וואָס זענען מאַלטאַפּאַלז פון דעם נומער. דעם דיפאָלץ צו 512.

- הייפער רעזערוו

- הייבן רעזערווירן , טוען

ספּעציפיצירן די סומע פון ​​זכּרון צו רעזערווירן (און אָפּטיאָנאַללי יבערגעבן) צו ווערן געניצט פֿאַר דעם פּראָגראַם. די פעליקייַט איז 1 מב רעזערווירט, 4 ק באגאנגען.

- בילד-באַזע ווערט

ניצן ווערט ווי די באַזע אַדרעס פון דיין פּראָגראַם אָדער דלל. דעם איז די לאָואַסט זכּרון פּלאַץ וואָס וועט זיין געוויינט ווען דיין פּראָגראַם אָדער דלל איז לאָודיד. צו רעדוצירן דעם דאַרפֿן צו רילאָוקייט און פֿאַרבעסערן די פאָרשטעלונג פון דיין דללס, יעדער זאָל האָבן אַ יינציק באַזע אַדרעס און נישט אָוווערלאַפּ קיין אנדערע דללס. די פעליקייַט איז 0x400000 פֿאַר עקסעקוטאַבלעס, און 0 קס 10000000 פֿאַר דללס.

--kill-at

אויב געגעבן, די stdcall סופפיקס (@ נן ) וועט זיין סטריפּט פון סימבאָלס איידער זיי זענען יקספּאָרטאַד.

- מאַדזשאָר-בילד-ווערסיע ווערט

שטעלט די הויפּט נומער פון די `` בילד ווערסיע ''. דעפאַולטס צו 1.

- מאַגער-אַס-ווערסיע ווערט

שטעלט די הויפּט נומער פון די `` אַס ווערסיע ''. דעפאַולץ צו 4.

--מאַדזשאָר-סובסיסטעם-ווערסיע ווערט

שטעלט די הויפּט נומער פון די `` סאַבסטישאַן ווערסיע ''. דעפאַולץ צו 4.

-מינאָר-בילד-ווערסיע ווערט

שטעלט די מינערווערטיק נומער פון די `` בילד ווערסיע ''. דעפאַולץ צו 0.

-מינאָר-אַס-ווערסיע ווערט

שטעלט די מינערווערטיק נומער פון `` אַס ווערסיע ''. דעפאַולץ צו 0.

-מינאָר-סובסיסטעם-ווערסיע ווערט

שטעלט די מינערווערטיק נומער פון די `` סאַבסטישאַן ווערסיע ''. דעפאַולץ צו 0.

- אַוטפּוץ-דעפ טעקע

דער לינקער וועט שאַפֿן די טעקע טעקע וואָס וועט אַנטהאַלטן אַ דעפ טעקע קאָראַספּאַנדינג צו די דלל די לינקסער איז דזשענערייטינג. דעם דעפ טעקע (וואָס זאָל זיין גערופן "*. דעפ") קען זיין געניצט צו שאַפֿן אַ אַרייַנפיר ביבליאָטעק מיט "דלטאָאָל" אָדער קען זיין געניצט ווי אַ רעפֿערענץ צו אויטאָמאַטיש אָדער ימפּליסאַטלי יקספּאָרטאַד סימבאָלס.

--out-implib טעקע

דער לינקער וועט שאַפֿן די טעקע טעקע וואָס וועט אַנטהאַלטן אַ אַרייַנפיר ליב קאָראַספּאַנדינג צו די דלל די לינקסער איז דזשענערייטינג. דעם אַרייַנפיר ליב (וואָס זאָל זיין גערופן "*. דלל.אַ" אָדער "*. אַ" קען זיין געניצט צו פאַרבינדן קלייאַנץ קעגן די דזשענערייטאַד דלל, דעם אָפּלייקענונג מאכט עס מעגלעך צו שפּרינגען אַ באַזונדער "דלטאָאָל"

--ענאַבלע-אַוטאָ-בילד-באַזע

אויטאָמאַטיש קלייַבן די בילד באַזע פֿאַר דללס, סייַדן איינער איז ספּעסאַפייד ניצן די "- בילד-באַזע" אַרגומענט. ניצן אַ האַש דזשענערייטאַד פון די דלנאַמע צו שאַפֿן יינציק בילד באַסעס פֿאַר יעדער דלל, אין-זיקאָרן קאַליזשאַנז און רילאָוקיישאַנז אַז קענען פאַרהאַלטן פּראָגראַם דורכפירונג זענען אַוווידאַד.

- דיסאַבלע-אַוטאָ-בילד-באַזע

דו זאלסט נישט אויטאָמאַטיש דזשענערייט אַ יינציק בילד באַזע. אויב עס איז קיין באַניצער-ספּעסאַפייד בילד באַזע ("- בילד-באַזע"), נוצן די פּלאַטפאָרמע פעליקייַט.

- דלל-זוך-פּרעפיקס שטריקל

ווען פֿאַרבינדונג דינאַמיקאַללי צו אַ דלל אָן אַן אַרייַנפיר ביבליאָטעק, זוכן פֿאַר "<שטריקל> <באַסענאַמע>. דלל" אין ייבערהאַנט צו "lib .dll". דעם אָפּפירונג אַלאַוז גרינג דיסטינגקשאַן צווישן דללס געבויט פֿאַר די פאַרשידן `סובפּלאַטפאָרמס ': געבוירן, cygwin, uwin, pw, אאז"וו. פֿאַר בייַשפּיל, cygwin DLLs typically use" - dll-search-prefix = cyg ".

--ענאַבלע-אַוטאָ-אַרייַנפיר

צי סאַפיסטיקייטאַד פֿאַרבינדונג פון "_סימבאָל" צו "__imp__symbol" פֿאַר דאַטאַ ימפּאָרץ פון דללס, און שאַפֿן די נייטיק טאַנגקינג סימבאָלס ווען בנין די אַרייַנפיר לייברעריז מיט יענע דאַטאַעקספּאָרץ. דאס בכלל וועט 'פּונקט אַרבעט' --- אָבער מאל איר קען זען דעם אָנזאָג:

"בייַטעוודיק" 'קען נישט זיין אַוטאָ-ימפּאָרטיד. ביטע לייענען די דאַקיומענטיישאַן פֿאַר לד ס "-ענאַבלע-אַוטאָ-אַרייַנפיר" פֿאַר פרטים. "

דעם אָנזאָג אַקערז ווען עטלעכע (סאַב) אויסדרוק אַקסעסאַז אַ אַדרעס לעסאָף געגעבן דורך די סומע פון ​​צוויי קאַנסטאַנץ (ווינ 32 אַרייַנפיר טישן בלויז לאָזן איינער). ינסטאָלז ווו דאָס קען פאַלן אַרייַננעמען אַקסעססעס צו מיטגליד פעלדער פון סטראַקט וועריאַבאַלז ימפּאָרטיד פון אַ דלל, ווי געזונט ווי ניצן אַ קעסיידערדיק אינדעקס אין אַ מענגע בייַטעוודיק ימפּאָרטיד פון אַ דלל. קיין מאַלטוואָרד בייַטעוודיק (ערייז, סטרוקץ, לאַנג לאַנג, עטק) קען צינגל דעם טעות צושטאַנד. אָבער, ראַגאַרדלאַס פון די פּינטלעך דאַטע טיפּ פון די אַפענדינג יקספּאָרטאַד בייַטעוודיק, ld וועט שטענדיק דעטעקט עס, אַרויסגעבן די ווארענונג, און אַרויסגאַנג.

עס זענען עטלעכע וועגן צו אַדרעס דעם שוועריקייט, ראַגאַרדלאַס פון די דאַטן טיפּ פון די יקספּאָרטאַד בייַטעוודיק:

איין וועג איז צו נוצן --ענאַבלע-רונטימע-פּסעוודאָ-רילאָוק באַשטימען. דעם בלעטער די אַדזשאַסטינג רעפערענץ אין דיין קליענט קאָד פֿאַר רונטימע סוויווע, אַזוי דעם אופֿן אַרבעט בלויז ווען רונטימע ענוויראָנמענט שטיצט דעם שטריך.

א צווייטע לייזונג איז צו פארשטיין איינער פון די 'קאָנסטאַנץ' צו זיין אַ בייַטעוודיק --- אַז איז, אומבאַקאַנט און ניט-אָפּטימיזאַבלע אין זאַמלונג צייַט. פֿאַר ערייז, עס זענען צוויי מעגלעכקייט: אַ) מאַכן די אינדעקס (די אַדרעס פון די מענגע) אַ בייַטעוודיק, אָדער b) מאַכן די 'קעסיידערדיק' אינדעקס אַ בייַטעוודיק. אזוי:

עקסטערנאַל טיפּ עקסטערנ_אַררייַ []; extern_array [1] -> {וואַלאַטאַל טיפּ * ה = עקסטערנאַלאַרראַ; t [1]}

אָדער

עקסטערנאַל טיפּ עקסטערנ_אַררייַ []; extern_array [1] -> {וואַלאַטאַל ינט ה = 1; extern_array [t]}

פֿאַר סטראָקץ (און רובֿ אנדערע מאַלטוואָרד דאַטן טייפּס) די בלויז אָפּציע איז צו מאַכן די סטרוקטור זיך (אָדער די לאַנג לאַנג, אָדער די ...) בייַטעוודיק:

extern struct s extern_struct; extern_struct.field -> {וואַלאַטאַל סטריט s * ט = & עקסטערנ_סטראַקט; t-> field}

אָדער

עקסטערן לאַנג לאַנג עקסטערנ_לל; extern_ll -> {פרייַעזע לאַנג לאַנג * local_ll = & extern_ll; * local_ll}

א דריט אופֿן פון האַנדלען מיט דעם שוועריקייט איז צו פאַרלאָזן 'אַוטאָ-אַרייַנפיר' פֿאַר די אַפענדינג סימבאָל און צייכן עס מיט "__ דעלקלספּעק (דללימפּאָרט)". אָבער, אין פיר אַז ריקווייערז ניצן קאַמפּיילינג-צייַט # דיפינז צו אָנווייַזן צי איר בויען אַ דלל, בנין קליענט קאָד וואָס וועט לינק צו די דלל, אָדער בלויז בנין / פֿאַרבינדונג צו אַ סטאַטיק ביבליאָטעק. אין מאכן די ברירה צווישן די פארשיידענע מעטהאָדס פון לייזונג די 'דירעקט אַדרעס מיט קעסיידערדיק פאָטאָ' פּראָבלעם, איר זאָל באַטראַכטן טיפּיש פאַקטיש-וועלט נוצן:

אָריגינעל:

--foo.h extern int arr []; --foo.c # ינקלודע "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", ער [1]); }

לייזונג 1:

--foo.h extern int arr []; --foo.c # ינקלודע "פאָאָ.ה" גאָר הויפּט (ינט אַרגק, טשאַר ** אַרגוו) {/ * דעם וואָרקאַראָונד איז פֿאַר ווינ 32 און סיגווין; טאָן ניט "אַפּטאַמייז" * / וואַלאַטאַל ינט * פּאַרר = אַרע; printf ("% d \ n", parr [1]); }

לייזונג 2:

--פאָאָ.ה / * באַמערקונג: אַוטאָ-אַרויספירן איז אנגענומען (ניט __ דעלעקספּאָרט)) * / #יף (דיפיינד (_ווינ 32) || דיפיינד (__ סיגווינ__)) && \! (דיפיינד (פאָאָ_בוילד_דלל) || דיפיינד (פאָאָ_סטאַטיק )) # פאַרפעלן FOO_IMPORT __declspec (dllimport) #else # define FOO_IMPORT #endif extern FOO_IMPORT int arr []; --foo.c # ינקלודע "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", ער [1]); }

א פערט וועג צו ויסמייַדן דעם פּראָבלעם איז צו שייַעך-קאָד דיין ביבליאָטעק צו נוצן אַ פאַנגקשאַנאַל צובינד, אלא ווי אַ דאַטע צובינד פֿאַר די אַפענדינג וועריאַבאַלז (למשל סעט_פאָאָ) און געט_פאָאָ () אַקסעססאָר פאַנגקשאַנז).

- דיסאַבלע-אַוטאָ-אַרייַנפיר

דו זאלסט נישט פּרווון צו טאָן סאָפיסטיקאַלטעד פֿאַרבינדונג פון "_סימבאָל" צו "__imp__symbol" פֿאַר דאַטאַימפּאָרץ פון דללס.

--ענאַבלע-רונטימע-פּסעוודאָ-רעלאָק

אויב דיין קאָד כּולל אויסדריקן דיסקרייבד אין -ענאַבלע-אַוטאָ-אַרייַנפיר אָפּטיילונג, דאַטאַימפּאָרץ פון דלל מיט ניט-נול אָפסעט, דעם באַשטימען וועט שאַפֿן אַ וועקטאָר פון 'רונטימע פּסעוודאָ רילאָוקיישאַנז' וואָס קענען זיין געניצט דורך רונטימע סוויווע צו סטרויערן רעפערענץ צו אַזאַ דאַטע אין דיין קליענט קאָד.

- דיסאַבלע-רונטימע-פּסעוודאָ-רעלאָק

דו זאלסט נישט מאַכן פּסעוודאָ רילאָוקיישאַנז פֿאַר ניט-נול פאָטאָ דאַטן ימפּאָרץ פון דללס. דאָס איז די פעליקייַט.

--ען-עקסטרע-פּע-דעבוג

ווייַזן נאָך דיבאַג אינפֿאָרמאַציע related to auto-import symbol thunking.

--section-alignment

שטעלט די אָפּטיילונג אַליינמאַנט. סעקשאַנז אין זכּרון וועלן שטענדיק אָנהייבן אין ווענדט וואָס זענען אַ קייפל פון דעם נומער. דעפאַולץ צו 0 קס 1000.

- סטאַק רעזערוו

- סטאַק רעזערוו , יבערגעבן

ספּעציפיצירן די נומער פון זכּרון צו רעזערווירן (און אָפּטיאָנאַללי יבערגעבן) צו זיין געניצט ווי אַ אָנלייגן פֿאַר דעם פּראָגראַם. די פעליקייַט איז 2 מב רעזערווירט, 4 ק באגאנגען.

- סובסיסטעם וואָס

- סובסיסטעם וואָס : הויפּט

- סובסיסטעם וואָס : הויפּט . מינערווערטיק

ספּעסאַפייז די סאַבסטיישאַן וואָס דיין פּראָגראַם וועט דורכפירן. די לעגאַל וואַלועס פֿאַר וואָס זענען "געבוירן", "פֿענצטער", "קאַנסאָול", און "פּאָסיקס". איר קען אָפּטיאָנאַללי שטעלן די סובסיסטעם ווערסיע אויך.

וויכטיק: ניצן די מענטש באַפֿעל ( % man ) צו זען ווי אַ באַפֿעל איז געוויינט אויף דיין באַזונדער קאָמפּיוטער.