أمر ld

الغرض

ملفات عنصر الوصلات.

الصيغة

ld [ -Dالعدد ] [ (ه ـ)التسمية ] [ -G ] [ -Hالعدد ] [ ك- ] [ -m ] [ -M ] [ -oالاسم ] [ -r ] [ -s ] [ -Sالعدد ] [ -لاالعدد ] [ -u الاسم ] ... [ v -v ] [ V -V ] [ -z ] [ -Zمجموعة حروف ] ... [ -bالخيار ] ... [ -Lالدليل ] ... { -fكود الملف ... -lالاسم ... ملف InputFile ... }

أو

ld -bsvr4 [ -d[ذ | (ن)] ] [ -D العدد ] [ (ه ـ) التسمية ] [ -G ] [ -Hالعدد ] [ ك- ] [ -m ] [ -M ] [ -oالاسم ] [ -r ] [ -R المسار ] [ -s ] [ -Sالعدد ] [ -لاالعدد ] [ -u الاسم ] ... [ v -v ] [ V -V ] [ -z [defs | النبلاء] ] [ -z متعدد المهام ] [ -z [نص | nowarntxet | warntext] ] ] [ -Zمجموعة حروف ] ... [ -bالخيار ] ... [ -Lالدليل ] ... { -fكود الملف ... -lالاسم ... ملف InputFile ... }

توصيف

يقوم الأمر ld ، الذي يسمى أيضا برنامج تحرير الوصلة أو برنامج الربط ، بدمج ملفات العنصر وملفات التخزين وملفات الاستقبال في ملف عنصر مخرجات واحد ، وحل المراجع الخارجية. حيث يقوم بتكوين ملف عنصر قابل للتنفيذ يمكن تشغيله. بالاضافة الى ذلك ، اذا قمت بتحديد الأمر ld بدون شارة -s ، يمكنك استخدام ملف المخرجات كمعامل ملف InputFile في استدعاء آخر الى أمر ld . وبصفة مفترضة ، يقوم الأمر ld بتكوين ووضع المخرجات الخاصة به في ملف a.out .

يمكن أن يقوم الأمر ld باعادة ربط البرنامج بدون أن يتطلب أن تقوم بعرض كل ملفات عنصر المدخلات مرة أخرى. على سبيل المثال ، اذا تم تغيير ملف عنصر واحد من برنامج كبير ، يمكنك اعادة ربط البرنامج عن طريق عرض ملف العنصر الجديد والبرنامج القديم الموجود في سطر الأمر ، مع أي مكتبات يتم مشاركتها بواسطة البرنامج. ارجع الى أمثلة.

يقوم أمر ld بربط ملفات المدخلات بالترتيب الذي تقوم بتحديده بسطر الأمر. اذا قمت بتحديد ملف أكثر من مرة ، سيتم تشغيل أول تكرار للملف فقط. You must specify at least one input file, either with the -bI (uppercase letter i), -استقبال, -bkeepfile, -f, or -l (lowercase letter L) flag or as an ملف InputFile parameter. (شارة -bIأو -استقبالأو -bkeepfile هي علامة -b التي يتم استخدامها مع اختيار Iأو استقبالأو keepfile .)

استخدم الأمر نسخة الى لربط الملفات عندما تقوم بانتاج برامج يتم تشغيلها من خلال نظام التشغيل. ولأن الأمر نسخة الى يقوم باستدعاء الأمر ld مع اختيارات مشتركة ومكتبات دعم ضرورية ، فانه لا يجب أن تقوم بتحديدهم على سطر الأمر. (يتم قراءة هذه المعلومات من /etc/xlC.cfg أو /etc/fl.cfg configuration file.)

نمط الربط

يمكن أن يقوم الأمر ld بربط عناصر وبرامج 32-bit بالاضافة الى عناصر وبرامج 64-bit ، ولكن قد لا يتم ربط عناصر 32-bit و 64-bit معا. لتحديد النمط للاتصال ، يمكنك استخدام متغير بيئة تشغيل OBJECT_MODE أو اختيارات -b32 أو -b64 .

ملفات التخزين

ملفات التخزين هي عناصر مركبة ، والتي تحتوي عادة على ملفات استقبال وملفات عنصر ، بما في ذلك العناصر المشتركة. اذا كان ملف التخزين يحتوي على ملف تخزين آخر أو عنصر لم يتم التعرف على النوع الخاص به ، سيقوم أمر ld باصدار تحذير وتجاهل العضو الذي لم يتم التعرف عليه. اذا كان ملف العنصر object المتضمن في ملف تخزين archive file يحتوي على F_LOADONLY bit set في XCOFF header ، سيقوم الأمر ld بتجاهل العنصر. عادة ما يتم استخدام هذه القطعة لتخصيص النسخ القديمة من العناصر المشتركة التي تبقى في ملف التخزين للسماح للتطبيقات الحالية بالتحميل والتشغيل. وصلة التطبيقات الجديدة مع النسخة الجديدة من العنصر المشترك ، أي عنصر آخر من عناصر التخزين.

عناصر مشتركة

العنصر المشترك ، الذي يتم تكوينه عادة بواسطة استدعاء آخر الى أمر ld ، هو ملف عنصر يحتوي على فئة F_SHROBROJ bit المحددة في عنوان XCOFF. يقوم العنصر المشترك بتعريف الرموز الخارجية التي يتم حلها في وقت التشغيل. اذا قمت بتحديد اختيار -bnso أو -bnooteimp ، سيقوم الأمر ld بتشغيل عنصر مشترك على أنه ملف عنصر عادي ، واذا تم تجريد الملف ، ستفشل الوصلة.

عادة ، يتم عرض العنصر المشترك الذي يتم استخدامه كمدخلات فقط في قسم التحميل الخاص بملف المخرجات اذا كان يتم الاشارة فعليا الى رمز في العنصر المشترك. عند استخدام خط وقت التشغيل ، ولكن ، قد تريد أن يتم عرض العناصر المشتركة حتى اذا لم يكن هناك رموز يتم الاشارة اليها. عند استخدام الاختيار -brtl ، سيتم عرض كل العناصر المشتركة التي تم عرضها في سطر الأمر والتي لا تعد عناصر تخزين في ملف المخرجات. يقوم برنامج تحميل النظام بتحميل كل هذه العناصر المشتركة عند تشغيل البرنامج ، وقد يتم استخدام الرموز التي تم ارسالها بواسطة هذه العناصر المشتركة بواسطة ener-time enker. لا يتم تحميل العناصر المشتركة التي تعد عناصر تخزين بطريقة آلية ما لم يتم اتاحة التحميل الآلي بواسطة ملف استقبال في التخزين. لاتاحة التحميل الآلي ، ارجع الى استقبال وارسال نسق ملف (-bI : and -bE : علامات).

استقبال وارسال الملفات

استقبال الملفات هي ملفات ASCII التي تقوم بتعريف الرموز الخارجية ليتم حلها في وقت التشغيل. يقوم ملف الاستقبال بتعريف العنصر المشترك الذي يقوم بتعريف الرموز التي تم استقبالها. يقوم برنامج تحميل النظام بايجاد وحل هذه الرموز في وقت التشغيل. اذا كان السطر الأول من ملف الاستقبال يبدأ بالعلامة #! (# ، علامة التعجب) ، يمكنك تحديد الملف على سطر الأمر على أنه ملف InputFileعادي. والا ، يجب أن تقوم باستخدام الاختيار -bI أو -استقبال لتحديد ملف الاستقبال.

ارسال الملفات هي ملفات ASCII التي تقوم بتعريف الرموز الخارجية التي يتم اتاحتها لملف عنصر قابل للتنفيذ آخر ليتم استقباله. يكون نسق الملف الخاص بملف الارسال هو نفس نسق الملف الخاص بملف الاستقبال.

مكتبات

المكتبات هي الملفات التي تنتهي أسمائها في .a، أو ربما . لذلك. لتحديد مكتبة ، يمكنك تحديد اسم مسار مطلق أو نسبي أو استخدام شارة -l (Lesaccase letter L) في النموذج -lالاسم. The last form designates a libالاسم.a file, or when the rtl option is used, a libالاسم. لذلك file to be searched for in several directories. تتضمن أدلة البحث هذه أي أدلة يتم تحديدها بواسطة شارات -L وأدلة المكتبة القياسية /usr/lib and /lib.

ملاحظة : اذا قمت بتحديد عنصر مشترك ، أو ملف تخزين يحتوي على عنصر مشترك ، مع اسم مسار مطلق أو نسبي ، بدلا من استخدام علامة -lالاسم ، سيتم تضمين اسم المسار في مجموعة حروف كود ملف الاستقبال في قسم التحميل الخاص بملف المخرجات. يمكنك احلال هذا التصرف باستخدام الاختيار -bnoipath .

جاري التشغيل

يقوم الأمر ld بتشغيل كل ملفات المدخلات بنفس الطريقة ، سواء كانت ملفات تخزين أم لا. وهي تتضمن جداول الرموز لكل العناصر ، وتقوم بمحو تعريفات الرموز فقط التي تقوم بنسخ الرموز الموجودة. على خلاف بعض النسخ الأخرى من أمر ld ، فانك لا تحتاج الى أن تقوم بطلب ملفات التخزين بحيث تكون المراجع سابقة للتعريفات. بالاضافة الى ذلك ، لا تحتاج الى أن تقوم بعرض ملف تخزين أكثر من مرة في سطر الأمر.

لا يؤثر ترتيب شارات أمر ld على الطريقة التي يتم بها تشغيلهم ، فيما عدا العلامات التي يتم استخدامها مع ملفات عنصر المدخلات والمكتبات وملفات الاستقبال. هذه الشارات هي : -L، -f، -l (حروف سفلية L) ، -bkeepfile، -bI (حروف علوية i). يتم تشغيل العلامات بالترتيب التالي :

  1. تقوم شارة -L باضافة دليل الى كشف أدلة البحث لايجاد المكتبات التي تم تحديدها بواسطة شارة -l (حروف سفلية L). يتم البحث في الأدلة بالترتيب المحدد. سيتم تشغيل كل شارات -L قبل تشغيل أي من شارات -l .
  2. يقوم الأمر ld بتشغيل معاملات ملف InputFile ، والملفات التي تم تحديدها بواسطة شارة -f والمكتبات المحددة بواسطة شارة -l (حروف سفلية L) بالترتيب المحدد.
  3. يقوم الأمر ld بتشغيل ملفات الاستقبال المحددة بواسطة شارة -bI (حروف علوية i) في الترتيب المحدد بعد تشغيل كل ملفات العناصر والمكتبات الأخرى. يمكنك تحديد ملف استقبال كملف مدخلات بدون شارة -bI اذا كان ذلك ضروري لتشغيل الملف قبل تشغيل بعض ملفات العنصر. في هذه الحالة ، يجب أن يبدأ السطر الأول من ملف الاستقبال بالرموز #! (# ، علامة التعجب) ، ويتم تشغيل ملف الاستقبال مع ملفات مدخلات أخرى كما هو موضح في الخطوة 2.
  4. يقوم الاختيار -bkeepfile بتحديد أسماء ملفات المدخلات التي لا يقوم الأمر ld بتنفيذ عملية تجميع النفايات بها. اذا تم أيضا تحديد ملف المدخلات المحدد على أنه معامل ملف InputFile أو تم عرضه في ملف محدد بواسطة شارة -f ، فان اختيار -bkeepfile لا يؤثر على الترتيب الذي يتم تشغيل الملف به. خلاف ذلك ، سيتم تشغيل الملف بالترتيب مع ملفات المدخلات الأخرى ، كما هو موضح في الخطوة 2.

ملف المخرجات الذي تم تكوينه بواسطة الأمر ld يحتوي على مجموعة تصاريح تنفيذ ، الا اذا قمت بتحديد شارة -r أو الاختيار -bnox أو الأخطاء التي تم تسجيلها أثناء عملية الاتصال. لا يتم الكتابة على ملف مخرجات موجود في حالة حدوث أي أخطاء جسيمة ، أو اذا تم تحديد ملف المخرجات على أنه ملف مدخلات وأي أخطاء حدثت.

الرموز

The ld command uses the following predefined symbols to provide special address locations and can be declared in C syntax as شار الفانوس الاسم[ ].The symbol names are:

بند توصيف
_text يحدد المكان الأول للبرنامج.
_etext يحدد المكان الأول بعد البرنامج.
_data يحدد المكان الأول للبيانات.
_edata يحدد أول مكان بعد البيانات التي تم بدء تشغيلها
_end أو dne يحدد المكان الأول بعد كل البيانات.

الطريقة الوحيدة لإستخدام هذه الرموز هي أخذ عناوينهم اذا قام ملف المدخلات باعادة تعريف أي من هذه الرموز ، فقد تكون هناك نتائج غير متوقعة. رمز آخر معرف مسبقا ، _ptrgl، يتم استخدامه بواسطة وحدات التجميع لتنفيذ الاستدعاءات باستخدام مؤشرات الوظيفة.

تجميع النفايات

افتراضيا ، يقوم الأمر ld بتنفيذ عملية تجميع النفايات ، وحذف أقسام التحكم (CSECT) التي لم يتم الاشارة اليها عند تكوين ملف المخرجات.

CSECT هي وحدة غير قابلة للتقسيم للتشفير أو البيانات. يشير CSECT الى CSECT آخر اذا كان يحتوي على ادخال اعادة النقل (RLD) الذي يشير الى رمز تم تضمينه في CSECT آخر. يتسبب CSECT المشار اليه في أن يتم الاشارة الى كل CSECT الى أن يتم الاشارة اليه أيضا. بالاضافة الى ذلك ، يتم الاشارة الى CSECT اذا كان يحتوي على رموز تم تصديرها أو رموز محددة مع شارة -u ، أو الرمز المحدد على أنه نقطة الادخال مع شارة (ه ـ) .

اذا كان الرمز غير مشار اليه ولكنه مطلوب في ملف المخرجات ، فيمكنك ارسال الرمز ، أو تحديد الرمز باستخدام شارة -u ، أو منع تجميع النفايات. لمنع تجميع النفايات ، استخدم شارة -r أو الاختيار -bnogc . لمنع تجميع النفايات لملفات عنصر منفردة ، استخدم اختيار -bkeepfile أو اختيار -bgcypass . حتى عند منع ظهور مجموعة garbage collection ، يتم حذف الرموز الداخلية الغير مشار اليها.

الشارات التي تم تجاهلها والتي لا يتم دعمها

للتوافق مع النسخ الأخرى من أمر ld ، يتم التعرف على بعض العلامات ولكن يتم تجاهلها. تقوم هذه الشارات باصدار رسالة تشير الى أنه قد تم تجاهل الشارة والمعامل الخاص بها. شارة تم تجاهلها لا تتسبب في ايقاف أمر ld بدون مزيد من التشغيل. تم تجاهل العلامات التالية :

-ANumber         -bnostrcmpct     -n
-bfilelist       -bstrcmpct       -N
-bfl             -BNumber         -Q
-bforceimp       -d               -RNumber
-bi              -i               -VNumber
-binsert         -j[Key:]Number   -x
-bnoforceimp     -kKey:Path       -YNumber
ملاحظة : عندما يكون اختيار -bsvr4 موجودا على سطر أمر ld ، يتم اعادة تعريف اختيارات -R و -z .

علامات تشير الى أن الأمر ld لا يدعم النتيجة في رسالة خطأ. بعد أن يتم تشخيص كل الشارات التي لا يتم دعمها ، سيتم ايقاف الأمر ld بدون مزيد من التشغيل.

شارات

يتوافق الأمر ld مع الخطوط الارشادية الى XPG Utility Syntax ، فيما عدا المتغير المستقلينطبق فقط على المعامل التالي ، وليس الى المعاملات المتبقية على سطر الأمر. على سبيل المثال ، في سطر الأمر :

ld -- -s -v

و#-sيتم التعامل معه على أنه اسم ملف واسم-vيتم معاملته على أنه علامة. أن يكون لديك-vتعامل على أنه اسم ملف ، حدد :

ld -- -s -- -v 
ملاحظة : أدخل شارة باستخدام معامل مع أو بدون المسافة بين الشارة والمعامل. يمكنك تحديد قيم رقمية بالنسق العشري ، أو العشري (بعلامة 0) ، أو سداسي عشر (باستخدام نسق 0x أو 0X). اذا قمت بتحديد شارات متعارضة على سطر الأمر ، سيقوم الأمر ld بالموافقة على الشارة الأحدث وتجاهل العلامات الأقدم.
بند توصيف
-bالخيار يتم تحديد اختيارات التشغيل الخاصة. يمكن تكرار هذه الشارة. للحصول على مزيد من المعلومات عن هذه الاختيارات ، ارجع الى اختيارات (-bOptions).
-d [ذ | (ن)] عند تحديد -dy ، يقوم ld باستخدام ربط ديناميكي ؛ يكون هذا الاختيار مماثل لاختيار -b جدا . عند تحديد -dn ، يقوم ld باستخدام ربط ثابت ؛ يكون هذا الاختيار مماثل لاختيار -b nso . الاختيار المفترض هو -dy. يكون هذا الاختيار صحيحا فقط عند تحديد اختيار -bsvr4 .
-Dالعدد لتحديد عنوان البدء للبيانات التي تم بدء فاعليتها (قسم البيانات) لملف المخرجات الى رقم اذا كان الرقم المحدد هو -1 ، سيتم بدء قسم البيانات مباشرة بعد القسم الخاص بالنص. افتراضيا ، يبدأ قسم البيانات في المكان 0.

اذا تم تحديد كل من شارات -D و -bpD ، فان الشارة الأخيرة تكون لها الأسبقية.

ملاحظة : يقوم برنامج تحميل النظام بنقل قسم البيانات في وقت التشغيل ، بحيث يؤثر الرقم المحدد فقط على العناوين المعروضة في خرائط العناوين أو طباعتها بواسطة وظائف مثل تفريغ أو m .
(ه ـ)التسمية لتحديد نقطة الادخال لملف المخرجات الذي يمكن تنفيذه الى التسمية. نقطة الادخال المفترضة هي ___ بدء (علامة التسطير المزدوج بدء).
-fكود الملف يحدد ملف يحتوي على كشف بملفات المدخلات المطلوب تشغيلها. يجب أن يحتوي FileID على كشف بأسماء ملفات المدخلات. يتم التعامل مع كل سطر في FileID كما لو كان قد تم عرضه بطريقة منفصلة في سطر أمر ld . الخطوط الموجودة في الملف يمكن أن تحتوي على حروف نموذج shell * (العلامة النجمية) ، [ (قوس يسار) ، ] (قوس يمين) ، و ? (علامة الاستفهام) ، التي يتم توسيعها باستخدام برنامج به الفرعي ويمكنها تحديد ملفات متعددة للعنصر.
-G يتم اتاحة عنصر مشترك تم اتاحته ليتم استخدامه مع كتير وقت التشغيل. شارة -G تكون مساوية لتحديد اختيارات تآكل، rtl، nortllib، غير متزامن، extomeexp، M :SRE مع شارة -b . يمكن أن تقوم الاختيارات المتتالية باحلال هذه الاختيارات.
-Hالعدد لمحاذاة النص والبيانات وأقسام التحميل الخاصة بملف المخرجات بحيث يبدأ كل قسم في ازاحة الملف التي تعد متعددة من العدد. اذا كان الرقم المحدد هو 1 ، لن يحدث محاذاة. اذا كان الرقم المحدد هو 0 ، يتم محاذاة الجزء loader على حد الكلمات ، وسيتم محاذاة النص وأقسام البيانات بحد أقصى لتحقيق المحاذاة لكل CSECT في الأقسام. القيمة الافتراضية هي صفر.

اذا كان العدد المحدد يؤدي الى الغاء محاذاة CSES داخل ملف المخرجات ، سيقوم الأمر ld باصدار تحذير وقد لا يتم تحميل أو تشغيل ملف مخرجات الملف القابل للتنفيذ.

ك- لمحاذاة نص الرأس والنص والبيانات وأقسام التحميل لملف المخرجات بحيث يبدأ كل قسم في حدود الصفحة. هذه الشارة مكافئة لتحديد -Hالعدد، حيث العدد هو حجم الصفحة للجهاز الذي يتم تشغيل ld عليه.
-lالاسم لتشغيل الملف libName.a . في النمط الديناميكي ، مع اختيار rtl ، قم بتشغيل الملف libName.a أو libName. لذلك . في كل الحالات ، الأدلة المحددة بواسطة علامة -L أو في أدلة المكتبة القياسية (/usr/lib and /lib) are searched to find the file. في النمط الديناميكي مع اختيار rtl ، فان الدليل الأول الذي يحتوي على libName. لذلك أو libName.a يحقق البحث. اذا تم ايجاد كلا الملفين في نفس الدليل ، سيتم استخدام libName. لذلك . يمكنك تكرار هذا العلم. للحصول على مزيد من المعلومات عن النمط الديناميكي ، ارجع الى ربط وقت التشغيل.
ملاحظة : يتم الاحتفاظ بالتعريف الأول لرمز symbol ، حتى اذا لم يتم مشاهدة أي مرجع لرمز symbol عند قراءة ملف التخزين. في نسخ أخرى من أمر ld ، يتم تجاهل رمز تم تعريفه في ملف تخزين اذا لم يتم مشاهدة أي مرجع للرمز عند قراءة ملف التخزين.
-Lالدليل يقوم باضافة الدليل الى كشف أدلة البحث المستخدمة لايجاد المكتبات التي تم تحديدها بواسطة شارة -l (حروف سفلية L). يتم أيضا تسجيل كشف الأدلة ، بما في ذلك أدلة المكتبة القياسية ، في قسم تحميل ملف عنصر المخرجات ليتم استخدامه بواسطة وحدة تحميل النظام الا اذا قمت باستخدام الاختيار -bibpathأو -bnolibpathأو -bsvr4 . يمكنك تكرار هذا العلم.
-m أو -M الكشوف للمخرجات القياسية عبارة عن أسماء كل الملفات وعناصر التخزين التي تم تشغيلها لتكوين ملف المخرجات. لا يتم عرض العناصر المشتركة وملفات الاستقبال.
-oالاسم يقوم بتسمية ملف المخرجات الاسم. كقيمة مفترضة ، الاسم الخاص بملف المخرجات هو a.out.
-r لتكوين ملف مخرجات غير قابل للتنفيذ لاستخدامه كملف مدخلات في استدعاء أمر ld آخر. قد يحتوي هذا الملف أيضا على رموز غير محلولة. The -r flag is equivalent to specifying the تآكل, غمزة otx, and notnnoc options with the -b flag. (يمكن أن تقوم الاختيارات التالية باحلال هذه الاختيارات.)
-R المسار يكون صحيح فقط عند تواجد اختيار -bsvr4 في سطر الأمر ld . وهي تقوم بتعريف كشف بالأدلة مفصول بنقطتين يتم استخدامه لتحديد أدلة بحث المكتبة الى runtime enker. المسار، اذا كان موجود وليس NULL ، يتم تسجيله في قسم تحميل ملف المخرجات. ثم يتم استخدامه عند ربط قابل للتنفيذ بمكتبات مشتركة في وقت التشغيل. نسخ متعددة من هذا الاختيار تكون متسلسلة مع كل المسار مفصول بينها بنقطتين.
-s يقوم بتحديد جدول الرموز ، ومعلومات رقم السطر ، ومعلومات النقل عند تكوين ملف المخرجات. ستقوم عملية التعري بحفظ المساحة ولكنها تقوم بالغاء تحديد مدى فائدة وحدات تصحيح الأخطاء. يمكنك أيضا تجريد أحد ملفات التشغيل الموجودة بالفعل باستخدام الأمر شريط .
لا يمكن ربط عناصر ملاحظة : Non-مشتركة اذا تم تجريدهم. يمكن تجريد العنصر المشترك ، ولكن لا يمكن استخدام عنصر مشترك تم تجريده عند الاتصال بشكل ثابت.
-Sالعدد لتحديد الحد الأقصى للحجم (بالبايت) المسموح به لمجموعة المستخدمين عند تشغيل برنامج تشغيل المخرجات. يتم حفظ هذه القيمة في العنوان الاضافي ويتم استخدامها بواسطة وحدة تحميل النظام لاعداد قرحة لينة. القيمة المفترضة هي 0.

للحصول على مزيد من المعلومات عن مجموعات المستخدمين الكبيرة وبرامج 32-بت ، ارجع الى دعم البرنامج الكبير Overview3 في مفاهيم البرمجة العامة : برامج الكتابة وتصحيح الأخطاء.

-لاالعدد لتحديد عنوان البدء لجزء النص الخاص بملف المخرجات الى العدد. القيمة المفترضة هي 0.

اذا تم تحديد كل من شارات -لا و -bpT ، فان الشارة الأخيرة تكون لها الأسبقية.

ملاحظة : يقوم برنامج تحميل النظام بنقل جزء النص في وقت التشغيل ، لذلك يؤثر الرقم المحدد على العناوين المعروضة في خرائط العناوين فقط أو طباعتها بواسطة وظائف مثل m أو الأمر تفريغ .
انتباه : اذا كان العدد0x1000xxxxxxxوالبرنامج المتصل هو برنامج 64-bit ، يقوم برنامج تحميل النظام بتحميل النص الذي يمكن تنفيذه في الذاكرة بدءا من المقطع عند العنوان.0x10000000000.
-uالاسم يمنع مجموعة garbage من الرمز الخارجي الاسم. اذا كان الرمز المحدد غير موجود ، سيتم تسجيل تحذير. يمكنك تكرار هذا العلم.
v -v لكتابة معلومات اضافية عن تنفيذ أمر binder الى ملف loadmap.
V -V لكتابة عبارة النسخة من ld الى خطأ قياسي (stderr).
-z في حالة عدم وجود اختيار -b svr4 ، قم بتنفيذ نفس الوظيفة مثل شارة ك- .
-z دنس للقوات خطأ فادح اذا ظلت أي رموز غير معرفة في نهاية الوصلة. هذا هو المفترض عند بناء ملف قابل للتنفيذ. ويكون مفيدا أيضا عند بناء مكتبة مشتركة للتأكد من أن العنصر تم تضمينه ذاتيا ، أي أنه يتم حل كل المراجع الرمزية الخاصة به داخليا. يكون هذا الاختيار صحيحا فقط عند تحديد اختيار -b svr4 . وهو مماثل لاختيار -b ernotok .
-z nosnos يسمح باستخدام رموز غير معرفة. هذا هو المفترض عند بناء مكتبة مشتركة. عند استخدامه مع execules ، يكون التصرف الخاص بالمراجع لمثل هذه الرموز غير المعرفة غير محدد. يكون هذا الاختيار صحيحا فقط عند تحديد اختيار -b svr4 . وهو مماثل لاختيار -(ب) (ب) .
-z multidefs يسمح بتعريفات رمز متعددة. كقيمة مفترضة ، تعريفات الرموز المتعددة التي تحدث بين العناصر التي تم نقلها (ملفات.o ) سينتج عنها حالة خطأ فادح. يقوم هذا الاختيار بايقاف شرط الخطأ ويسمح بأن يتم أخذ تعريف الرمز الأول. يكون هذا الاختيار صحيحا فقط عند تحديد اختيار -b svr4 .
-z نص في النمط الديناميكي فقط ، سيؤدي ذلك الى حدوث خطأ فادح اذا كان هناك أي انتقال لقسم .text لا يزال. يكون هذا الاختيار صحيحا فقط عند تحديد اختيار -b svr4 .
-z nowarntext في نمط ديناميكي فقط ، يسمح بعمليات النقل مقابل كل الأجزاء القابلة للالحاق ، متضمنة قسم .text . هذا هو المفترض عند بناء مكتبة مشتركة. يكون هذا الاختيار صحيحا فقط عند تحديد اختيار -b svr4 .
-z warntext في النمط الديناميكي فقط ، يتم تحذير ما اذا كان ستبقى أي عمليات نقل على قسم .text . هذا هو المفترض عند تكوين ملف قابل للتنفيذ. يكون هذا الاختيار صحيحا فقط عند تحديد اختيار -b svr4 .
-Zمجموعة حروف يقوم بعمل بادئة لأسماء أدلة المكتبة القياسية مع مجموعة حروف عند البحث عن مكتبات محددة بواسطة شارة -l (Lesaccase letter L). For example, with the -Z/اختبار and -lxyz flags, the ld command looks for the /test/usr/lib/libxyz.a and /test/lib/libxyz.a files. عند استخدام شارة -Zمجموعة حروف ، لا يتم بحث أدلة المكتبة القياسية. لا يكون لهذه الشارة أي تأثير على معلومات مسار المكتبة التي تم حفظها في قسم التحميل الخاص بملف المخرجات. يكون هذا العلم مفيدا عند تطوير نسخة جديدة من المكتبة. يمكنك تكرار هذا العلم.

Binder

يقوم الأمر ld بالتحقق من متغيرات command-line ويقوم باستدعاء binder (بصفة مفترضة /usr/ccs/bin/bind file), passing a generated list of binder subcommands. يقوم برنامج الربط بربط الملفات فعليا. على الرغم من أنه عادة ما يتم استدعاء binder بواسطة الأمر ld ، يمكنك بدء binder مباشرة. في هذه الحالة ، يقوم برنامج الربط بقراءة الأوامر من المدخلات القياسية.

هناك خياران يؤثران على استدعاء binder. اختيار binder يحدد برنامج الربط الذي سيتم استدعائه ، والاختيار nobind يمنع الأمر ld من استدعاء binder. تؤثر اختيارات أداة الربط الأخرى على الأوامر الفرعية لوحدة الربط التي يتم تكوينها.

اذا لم يقم الأمر ld باكتشاف أي أخطاء في الاختيارات أو اختيارات معاملات command-line ، فانه يقوم باستدعاء binder. يتم استدعاء برنامج الربط باستخدام سطر الأمر الخاص بالنموذج :

bind [quiet_opt] [loadmap_opt]

القيمة المفترضة الى quiet_opt هيquietوالقيمة المفترضة ل ـ loaddap_opt هي عبارة Null ، لذلك ، فان سطر الأمر المفترض هو :

/usr/ccs/bin/bind quiet

اختيارات (-bOptions)

القيم التالية تكون ممكنة للمتغير اختيارات الخاص بشارة -b . يمكنك عرض أكثر من اختيار واحد بعد شارة -b ، وفصلهم مع فراغ واحد.
ملحوظة:
  1. في الكشف التالي من اختيارات binder ، فان اثنين من أسماء الاختيارات مفصولة بالكلمة أو هي مترادفة.
  2. يشير كود الملف الى اسم المسار. يمكنك استخدام اسم مسار نسبي أو اسم مسار كامل.
  3. بالنسبة للاختيار غير القابل للتكرار الذي يتم اتباعه بواسطة المتغير المستقل ، يمكنك تنفي الاختيار باستخدام اختيار معامل عبارة عن لا شيء. هذا هو ، قم بتحديد الاختيار والنقطتين فقط.
  4. اذا قمت بتحديد اختيارات متعارضة ، سيكون لآخر اختيارات الأولوية.
بند توصيف
23 يحدد نمط الاتصال 32-bit. في هذا النمط ، يجب أن تكون كل ملفات عنصر المدخلات ملفات XCOFF32 ، أو يتم تسجيل خطأ. يتم تجاهل عناصر تخزين XCOFF64 . بالنسبة لملفات الاستقبال أو التصدير التي تحدد نمط رموز معينة ، يتم تجاهل رموز 64-بت. اذا تم تحديد كلا من اختيارات -b32 و -b64 ، سيتم استخدام آخر اختيار تم تحديده. اذا لم يتم تحديد أي من الاختيارات ، سيتم تحديد النمط من قيمة متغير بيئة التشغيل OBJECT_MODE.
64 يحدد نمط الاتصال 64-bit. في هذا النمط ، يجب أن تكون كل ملفات عنصر المدخلات هي ملفات XCOFF64 ، أو سيتم تسجيل خطأ. يتم تجاهل عناصر تخزين XCOFF32 . بالنسبة لملفات الاستقبال أو التصدير التي تحدد نمط رموز معينة ، يتم تجاهل رموز 32-بت. اذا تم تحديد كلا من اختيارات -b32 و -b64 ، سيتم استخدام آخر اختيار تم تحديده. اذا لم يتم تحديد أي من الاختيارات ، سيتم تحديد النمط من قيمة متغير بيئة التشغيل OBJECT_MODE.
واحة لتشغيل كل الرموز الخارجية في حالة مختلطة. هذا هو المفترض . لتشغيل كل الرموز الخارجية بحروف علوية ، ارجع الى اختيار حروف الذي يليه.
aslr أو aslr:[ tdsmp ] * أو aslr:-

يحدد العنوان العشوائي لمساحة العنوان للبرنامج. يتيح الاختيار aslr كل الخصائص المميزة للعشب عند استخدام هذا الاختيار فقط ، و-baslr:-فهي لا تقوم بإسطبلات كل الخصائص المميزة للعشب العشوائي.

اذا كان اختيار aslr متبوعة بنقطتين ، يمكن اتاحة الخواص المميزة الفردية. الخصائص التالية تشير الى نص وبيانات ورص ومناظرة ومكتبات خاصة : (ر)، (د)، ق، م، (ع). بالنسبة للخواص المميزة التي لم يتم عرضها ، تظل محددات العشوائية غير متاحة.
ملاحظة : The م and (ع) attributes cannot be specified for 32-bit programs.

بعض البرامج يتم ترجمتها وربطها مثل العناوين القابلة للتغيير يتم مناظرتها الى جزء النص. وهذا يتطلب نقل العناوين عند تشغيل البرنامج. تفشل هذه البرامج اذا تم اتاحة العشوائية للنص أو البيانات. وكنتيجة لذلك ، عندما تكون عمليات النقل الخاصة بأقسام النص موجودة ، لن يتم اتاحة نص وعمليات عشوائية للبيانات ما لم يتم تحديد الخصائص المميزة (ر) و (د) بوضوح عند استخدام الاختيار aslr .

excexp يتم ارسال بعض الرموز آليا من وحدة برامج المخرجات بدون الحاجة الى عرضها في ملف التصدير. (لا يقوم هذا الاختيار بارسال كل الرموز من وحدة برامج المخرجات. استخدم الاختيار -bexpsab لارسال كل الرموز.) هذا هو الاختيار المفترض. استخدم هذا الاختيار عند ربط برنامج رئيسي. يفترض linker أنك تقوم بربط برنامج رئيسي عندما لا تقوم بتحديد نوع وحدة البرامج (باستخدام اختيار م أو modtype ) بدءا منSولا يمكنك استخدام الاختيار ادخال .

عندما تقوم باستخدام اختيار excexp ، اذا كان أي عنصر مشترك يتم عرضه في سطر الأمر يقوم باستقبال رمز من الملف الخاص . (dot) ، ووحدة البرنامج التي يتم توصيلها تحتوي على تعريف محلي للرمز ، يتم ارسال الرمز آليا.

يتم أيضا ارسال الرموز الأخرى آليا عندما تقوم بالاتصال بالاختيار rtl . اذا كان الرمز الذي تم تعريفه في وحدة البرنامج الجاري ربطه يحتوي على واحد أو أكثر من التعريفات الاضافية التي تم ارسالها من العنصر المشترك المعروض على سطر الأمر ، واذا كان أي من التعريفات هو رمز BSS ، سيتم ارسال الرمز بطريقة آلية. اذا كان التعريف الموجود في وحدة البرنامج التي يتم ربطها هو رمز BSS ، سيتم ارسال الرمز معnosymbolicالخاصية المميزة. خلاف ذلك ، يتم ارسال الرمز معsymbolicالخاصية المميزة. اذا تم عرض الرمز في ملف الارسال مع خاصية مميزة أخرى للارسال ، سيتم استخدام الخاصية المميزة الصريحة.

اذا كان اختيار excexp سيقوم آليا بتصدير رمز ، ولكن سيتم عرض الرمز في ملف ارسال مع الخاصية المميزة كشف ، لن يتم ارسال الرمز.

pimep أو لذا يقوم باستقبال الرموز من أي عناصر مشتركة يتم تحديدها كملفات مدخلات. يتم الاشارة الى العناصر المشتركة ولكن لا يتم تضمينها كجزء من ملف عنصر المخرجات. هذا هو المفترض .
autoload : مسار / ملف (عنصر) تحميل عنصر التخزين آليا.
slbtnl يقوم بتكوين كود اضافي اذا كان حجم thread-local storage في عنصر المخرجات أو البرنامج أكبر من 64 كيلوبايت وتم استخدام Compiler الذي يقوم بتكوين مراجع مباشرة لمتغيرات محلية-exec أو متغيرات محلية-محلية-ديناميكية. هناك حاجة الى كود اضافي لكل مرجع مباشر لمتغير محلي-متغير محلي لا يمكن معالجته بازاحة 16-بت. بما أن البرنامج الذي يحتوي على كود اضافي قد يكون له مستوى أداء ضعيف ، فمن الأفضل أن يتم تقليل عدد متغيرات سلسلة العمليات-المحلية باستخدام المراجع المباشرة بدلا من استخدام الاختيار. الاختيار المفترض هو اختيار sbigtlls .
bigoc لتكوين كود اضافي اذا كان حجم جدول المحتويات (TOC) أكبر من 64KB. يجب تحديد كود اضافي لكل مرجع لرمز TOC الذي لا يمكن التعامل معه باستخدام ازاحة 16-بت. بسبب أن البرنامج الذي يحتوي على الكود الذي تم تكوينه قد يكون له مستوى أداء ضعيف ، قم بتقليل عدد ادخالات TOC المطلوبة بواسطة البرنامج قبل استخدام هذا الاختيار. الاختيار المفترض هو اختيار bigbtoc .
bindcms :كود الملف يقوم بكتابة نسخة من أوامر binder التي تم تكوينها بواسطة الأمر ld الى كود الملف. يمكنك اعادة توجيه الملف الناتج على أنه مدخلات قياسية لبرنامج binder حين يتم استدعاء برنامج binder كبرنامج مستقل. كقيمة مفترضة ، لا يتم تكوين أي ملف.
أداة الربط :كود الملف يقوم باستخدام كود الملف كأداة الربط التي يتم استدعائها بواسطة الأمر ld . وحدة الربط المفترضة هي binder /usr/ccs/bin/bind file.
bindopts :كود الملف لكتابة نسخة من معاملات برنامج الربط الى كود الملف. يمكنك استخدام الملف الناتج لبدء برنامج binder كبرنامج مستقل. كقيمة مفترضة ، لا يتم تكوين أي ملف.
ج :كود الملف أو : المكالماتكود الملف لكتابة خريطة العنوان الخاصة بملف عنصر المخرجات الى كود الملف. يتم فرز الرموز حسب القسم وبعد ذلك عن طريق العنوان. لكل رمز يتم عرضه في الخريطة ، يتم عرض مراجع من الرمز الى رموز أخرى. كقيمة مفترضة ، لا يتم تكوين أي ملف. للتعرف على المزيد عن اختيار استدعاءات ، أنظر مناظرات العنوان.
حروف لتشغيل كل الرموز الخارجية بحروف علوية. الاختيار المفترض هو اختيار واحة .
وحدات cdors[:[incl][:[nnn] [:ترتيب]]] يقوم الخط بتجميع المعلومات عن وحدة التكوين الثابتة C++ أو وظائف التدمير ويقوم بحفظ هذه المعلومات في ملف المخرجات. يقوم الاختيار الفرعي incl فرعي باخبار linker الذي يقوم بتخزين العناصر للبحث عند تكوين المعلومات التي تم حفظها. القيم المتاحة هي:
كل
يتم بحث كل العناصر الخاصة بكل المخازن لوظائف وحدة التكوين أو وحدات التدمير. هذا هو المفترض .
br
يتم البحث عن وظائف وحدة التكوين أو وحدات التدمير فقط اذا كان العنصر متضمن في ملف المخرجات. استخدام قيمة br يعد مكافئا لاستخدام اختيارات -qtwolink و -bsvr4 .
تشج
يتم البحث عن وحدة التكوين أو وظائف التدمير فقط في يتقاطع التي تم تضمينها من التخزين. استخدام قيمة تشج يعتبر مساويا لاستخدام اختيار -qtwolink بدون اختيار -bsvr4 .

اختيار nnn الفرعي يحدد أولوية وحدة برامج المخرجات. يتم استخدام هذه الأولوية للتحكم في الترتيب الذي يتم به بدء تشغيل وحدات البرامج ، في حالة قيام برنامج بتحميل وحدات برامج متعددة في نفس الوقت. (يتم تجاهل الأولوية اذا كان ملف المخرجات عبارة عن برنامج وليس عنصر مشترك.) يمكن أن تكون الأولوية في المدى من -231 الى 231-1. الأولوية المفترضة هي 0. القيم الموجودة في المدى من -231 الى -231+ 1023 يتم الاحتفاظ بها لبدء تشغيل C++ runtime.

يقوم الاختيار الفرعي ترتيب بتحديد الترتيب الذي يتم من خلاله استدعاء وظائف وحدة التكوين أو وظائف التدمير ، لكل الوظائف التي لها نفس الأولوية. القيم المتاحة هي:
s
يقوم بالفرز بترتيب عشوائي وفقا لأسماء الوظائف. هذا هو المفترض ، ومتوافق مع الترتيب الذي يستخدمه XL C++ Compiler.
c
يقوم بالفرز في ترتيب الوصلة. وظائف وحدة التكوين أو التدمير في أول ملف مدخلات يتم بدء تشغيلها أولا. في التخزين ، يتم بدء تشغيل الوظائف الموجودة في العنصر الأول أولا.
r
يقوم بالفرز في ترتيب وصلة معكوسة. وظائف وحدة التكوين أو التدمير في آخر ملف مدخلات يتم اعدادها للبدء أولا. في التخزين ، يتم بدء تشغيل الوظائف الموجودة في العنصر الأخير أولا.

يمكنك تحديد هذا الاختيار عدة مرات ، ولكن سيتم استخدام الاختيار الفرعي الأخير الذي تقوم بتحديده. لا يؤثر الاختيار الفرعي غير المحدد على القيمة الحالية أو القيمة المفترضة. على سبيل المثال ، -bcdtors:csect:20:s -bcdors : ::r هو نفسه -bcdtors:csect::20:r. الاختيار المفترض هو -وحدات برامج bnocdors. اذا تم تحديد -bcdors ، يكون هذا مماثلا الى -bcdtors:all:0:s.

ملحوظة:
  1. اذا لزم الأمر ، ستقوم وحدة ترجمة XL C++ باصدار هذا الاختيار بطريقة آلية.
  2. يتم استدعاء الوظائف المحددة مع اختيار -binitfini بشكل مستقل عن وظائف وحدة التكوين الاستاتيكية أو وظائف التدمير. للحصول على مزيد من المعلومات عن ترتيب الاعداد للبدء ، ارجع الى برنامج dllaمنفتحة الفرعي.
comblbf أو crld لدمج العديد من ادخالات النقل (RLDs) في نفس العنوان الى RLD واحد عندما يكون ذلك ممكنا. هذا هو المفترض .
cror15 يستخدم cror 151515 (0x4def7b82) التعليمات الخاصة بالأمر الخاص بعدم-op وفقا لتعليمات الاستدعاء. القيمة المفترضة هي nori 0, 0, 0 (0x60000000). ارجع الى الاختيار nop .

استخدم هذا الاختيار عند ربط ملفات العنصر بالمستوى الحالي للنظام الذي تريد أن يتم اعادة الاتصال به على AIX® 3.1.

cror31 يستخدم cror 3131,31 (0x4ffffb82) التعليمات الخاصة بالأمر الخاص بعدم-op وفقا لتعليمات الاستدعاء. القيمة المفترضة هي nori 0, 0, 0 (0x60000000). ارجع الى الاختيار nop .

استخدم هذا الاختيار عند ربط ملفات العنصر بالمستوى الحالي للنظام الذي تريد أن يتم اعادة الاتصال به على AIX 3.2.

د : العدد [ /(أ)] أو maxdata :العدد[ /(أ)] لتحديد الحد الأقصى للحجم (بالبايت) المسموح به لمنطقة بيانات المستخدم (أو heap resu) عند تشغيل البرنامج الذي يمكن تنفيذه. يتم حفظ هذه القيمة في redaeh yrailixua ويتم استخدامها بواسطة وحدة تحميل النظام لزيادة عدد البيانات المرنة eulaimit atad لينة ، اذا لزم الأمر. القيمة الافتراضية هي صفر. عند استخدام هذا الاختيار ، سيتم الاحتفاظ بالعدد المحدد من البايت لمنطقة بيانات المستخدم. قد لا يقوم البرنامج بمناظرة العناصر صراحة ، عن طريق استخدام وظائف شمات أو خريطة mmap للعناوين الظاهرية التي تم الاحتفاظ بها لمساحة بيانات المستخدم.

بالنسبة لبرامج 32-bit ، تكون القيمة القصوى المسموح بها بواسطة النظام هي0x80000000للبرامج التي يتم تشغيلها من خلال دعم البرنامج الكبير و0xD0000000للبرامج التي يتم تشغيلها تحت دعم برنامج كبير جدا. ارجع الى رؤية عامة عن دعم البرنامج الكبير في مفاهيم البرمجة العامة : برامج الكتابة وتصحيح الأخطاء. عند تحديد قيمة غير صفرية ، تبدأ منطقة بيانات المستخدم في الجزء 3 ، ويقوم البرنامج باستخدام أكبر عدد من المقاطع للوفاء بقيمة maxdata المحددة.

بالنسبة لبرامج 64-bit يقوم الاختيار maxdata باتاحة الحد الأقصى المضمون لحجم البيانات الخاصة بتجميع بيانات البرامج. يمكن تحديد أي قيمة ولكن مساحة البيانات لا يمكن أن تمتد للماضي0x06FFFFFFFFFFFFF8بصرف النظر عن قيمة maxdata المحددة.

حجم البيانات :pize يتم طلب حجم الصفحة pize بالبايت للبيانات. يمكن تحديد القيمة على أنها رقم عشري أو سداسي عشري أو ثماني. تكون محددات الرقم هي نفسها لغة برمجة C. بالاضافة الى ذلك ، يمكن تحديد حجم الصفحة على أنه رقم متبوعة بلاحقة ذات-حرف واحد :
  • k أو K للكيلو أو لبايت 0x400 بايت
  • m أو M لأجل mega أو 0x100000 bytes
  • g أو G للحصول على gigga أو 0x40000000 بايت
  • T أو T الى tera أو 0x10000000000 بايت
  • p أو P لبيبايت أو 0x4000000000000 بايت
  • X أو X الى exo أو 0x1000000000000000 بايت
على سبيل المثال ، اما-b datapsize:16kأو-b datapsize:0x4000سيقوم بطلب 0x4000 للبيانات وحددF_VARPGفي نص رأس XCOFF بت.
dbg:الخيار أو برنامج تصحيح الأخطاء:الخيار لتحديد اختيار تصحيح الأخطاء أو التحكم الخاص. بصفة مفترضة ، لا يتم تحديد اختيار تصحيح الأخطاء.

يتم استخدام الاختيار dbg : loadabs أو برنامج تصحيح الأخطاء : loadabs للاشارة الى أنه قد تم تحميل برنامج المخرجات في نفس العنوان مثل العنوان المحدد بواسطة شارات -لا و -D . في هذه الحالة ، لا يتم أبدا تغيير الأمر المطلق-المطلق الى تعليمات فرعية (نسبية) حتى اذا كان هدفه هو رمز قابل لنقله. وبالمثل ، لا يتم أبدا تغيير تعليمات الفرع الى تعليمات مطلقة للفرع.

حشرة يقوم بحذف كل الرموز في CSECT اذا تم تعريف أي رمز في CSECT بواسطة ملف عنصر تم قراءته مسبقا. يقوم هذا الاختيار بمنع أكثر من نسخة واحدة من نفس الوظيفة من نفس البرنامج الموجود في نفس البرنامج. For example, if a.o defines function a () and bo.o defines functions a () and (ب), linking a.o and bo.o with the -bdelcct option deletes symbols a () and (ب) from bo.o. لذلك ، يوجد حالتان من a () غير موجودين. الاختيار المفترض هو اختيار nodelecdelc .
ديناميكي أو مشاركة يجعل الخط يقوم بتشغيل العناصر المشتركة المتتابعة في نمط ديناميكي. هذا هو المفترض . في النمط الديناميكي ، لا يتم تضمين العناصر المشتركة بشكل ثابت في ملف المخرجات. بدلا من ذلك ، يتم عرض العناصر المشتركة في قسم التحميل الخاص بملف المخرجات. عندما تقوم بتحديد اختيار rtl والنمط الديناميكي فعال ، فان الملفات التي تنتهي في . لذلك بالاضافة الى .a تحقق من عمليات البحث عن المكتبات المحددة بعلامة -l (سفلية L). عندما يكون كلاهما فعال ، يتم اعطاء التفضيل الى . لذلك بدلا من .a عند تواجده في نفس الدليل. عندما تقوم بتحديد اختيار rtl ويكون النمط الثابت فعال ، يتم تشغيل الملفات التي تنتهي في .a .
هاء :كود الملف أو ارسال :كود الملف لتصدير الرموز الخارجية التي يتم عرضها في الملف كود الملف. يتم عرض الرموز التي تم تصديرها في قسم التحميل الخاص بملف المخرجات. لا يوجد ملف تصدير مفترض. عند استخدام اختيار svr4 ، سيقوم الاختيار هاء :كود الملف بالغاء أي اختيارات expexpالكل أو expull .
ernotok أو (و) يتم تسجيل خطأ اذا كان هناك أي مراجع خارجية لم يتم حلها. هذا هو المفترض .
تآكل لانتاج ملف عنصر المخرجات بدون أخطاء حتى اذا كان هناك مراجع خارجية لم يتم حلها. الاختيار المفترض هو اختيار ernotok .
خطأ تقوم بكتابة رسائل الخطأ بالنسبة للخطأ القياسي اذا كان مستوى الخطأ الخاص بالرسالة أكبر من أو يساوي قيمة الاختيار ايقاف ويتم استخدام الاختيار هدوء أو تم اعادة توجيه المخرجات القياسية. هذا هو المفترض .
ex1 :كود الملف, ex2 :كود الملف, ex3 :كود الملف, ex4 :كود الملف، و ex5 :كود الملف قم باتاحة برامج الخروج للمستخدم في تسلسل الأمر الفرعي النموذجي. يجب أن يحتوي كل ملف محدد بواسطة كود الملف على كشف بالأوامر الفرعية binder ، والتي سيتم تشغيلها كما يلي :
ex1:FileID
قبل قراءة أي InputFiles
ex2:FileID
في الحال قبل حل الرموز
ex3:FileID
مباشرة بعد حل الرموز
ex4:FileID
في الحال قبل كتابة ملف المخرجات
ex5:FileID
في الحال بعد كتابة ملف المخرجات
expexpالكل يتم ارسال كل الرموز الشاملة ، فيما عدا الرموز التي تم استقبالها ، والرموز غير المشار اليها التي تم تعريفها في عناصر التخزين ، والرموز التي تبدأ بالعلامة (_). يمكنك تصدير رموز اضافية من خلال عرضهم في ملف التصدير أو استخدام الاختيار expull . هذا الاختيار لا يؤثر على الرموز التي تم تصديرها بواسطة اختيار excexp .

عند استخدام هذا الاختيار ، قد يكون بامكانك تجنب استخدام ملف الارسال. من ناحية أخرى ، يتيح استخدام ملف الارسال التحكم صراحة على الرموز التي يتم ارسالها ، ويسمح لك باستخدام رموز عامة أخرى في العنصر المشترك الخاص بك بدون القلق حول تعارض الأسماء التي تم تصديرها من العناصر المشتركة الأخرى. الاختيار المفترض هو محو الكل.

expull لتصدير كل الرموز العامة غير الرموز التي تم استقبالها. الرموز الشاملة التي تم تصديرها تتضمن رموز غير مشار اليها تم تعريفها في عناصر التخزين ، والرموز التي تبدأ بالعلامة (_) ، ونقطة الادخال الخاصة بوحدة البرامج. هذا الاختيار لا يؤثر على الرموز التي تم تصديرها بواسطة اختيار excexp . الاختيار المفترض هو غير كامل ما لم يتم استخدام الاختيار svr4 .
ارسال :كود الملف للوظائف نفسها على أنها اختيار هاء :كود الملف .
f للوظائف نفسها كاختيار ernotok .
forceimprw وحدات للقراءة فقط CSECT التي تحتوي على مراجع للرموز التي تم استقبالها لتصبح قراءة-كتابة. الاختيار المفترض هو النبلاء forforeimprw.
forkpolicy :سياسة لتحديد شارات _AO_FORK_POLICY و _AOU_FORK_COR في عنوان XCOFF auxiliary Header ، عند ربط برنامج 64-بت. اذا كان سياسة cor، يتم أيضا تحديد شارة _AOUT_FORK_COR ، وطلب استخدام سياسة النسخ المرجعية للنسخ على مرجع عند تشغيل البرنامج. اذا كان سياسة cow، يتم ارجاع شارة _AOU_FORK_COR ، وطلب استخدام أسلوب النسخة-on-write forktree عند تشغيل البرنامج. عند ربط برنامج 32-bit ، يتم تجاهل هذه الشارة. الاختيار المفترض هو سياسة noforkpolicy.
gc يقوم بتنفيذ عملية تجميع النفايات. استخدم الاختيار notnnocأو تخطيأو keepfile لمنع تجميع النفايات لبعض أو كل ملفات العنصر. هذا هو المفترض .
gcisypass :العدد Specifies the number of files to bypass when garbage collecting if the gc option is specified. يتم تجاهل هذا الاختيار اذا تم استخدام الاختيار notnnoc . اذا كان العدد هو 0 ، يكون هذا الاختيار مساوي لاختيار gc ويتم تنفيذ مجموعة garbage collection لكل الملفات. القيمة المفترضة هي 0.
غمزة :كود الملف يتم استخدام كود نموذج الارتباط الشامل المحدد بواسطة كود الملف. يتم تكوين كود واجهة تعامل الارتباط الشامل لكل وظيفة تم استقبالها أو لم يتم تعريفها. في نمط 32-bit ، المفترض هو /usr/lib/glink.o file. في نمط 64-bit ، يكون المفترض هو ملف /usr/lib/glink64.o .
(ح)العدد أو ايقاف :العدد يحدد الحد الأقصى لمستوى الخطأ الخاص بتشغيل الأمر binder للاستمرار. القيمة المفترضة هي 4. اذا كان للأمر الفرعي binder قيمة ارجاع أكبر من العدد، فلن يتم تشغيل أي أوامر فرعية اضافية لوحدة الربط. اذا كانت قيمة مستوى الايقاف هي 8 أو أكبر ، فقد لا يكون ملف المخرجات قابل للتنفيذ اذا تم تكوينه على الاطلاق. القيم المرتجعة هي :
0
لا يوجد خطأ
4
تحذير
8
خطأ
12
خطأ جسيم
61
حدث خطأ في البرنامج الداخلي
أنا :كود الملف أو استقبال :كود الملف (Uppercase i) يقوم باستقبال الرموز المعروضة في كود الملف. لا يوجد ملف استقبال مفترض.
initfini :[ الأولي] [:انهاء] [:الأولوية] يحدد وظيفة بدء وانهاء وحدة البرامج لوحدة برامج ، حيث الأولي هو برنامج بدء التشغيل ، انهاء هو برنامج انهاء ، و الأولوية عبارة عن رقم صحيح موقع ، مع قيم من -2,147,483,648 الى 2,147,483,647. يجب أن تقوم بتحديد واحد على الأقل من الأولي و انهاء، واذا قمت بحذف كلا من انهاء و الأولوية، يجب أن تقوم بحذف النقطتين بعد الأولي أيضا. اذا لم تقم بتحديد الأولوية، 0 هو الاختيار المفترض. يمكن تكرار هذا الاختيار.

يقوم هذا الاختيار بفرز الروتينيات وفقا للأولوية ، بدءا من البرنامج الذي له الأولوية الأصغر (الأكثر سلبية). يقوم باستدعاء روتينات بدء التشغيل بالترتيب ، وروتينات الانهاء في ترتيب عكسي.

يقوم هذا الاختيار باستدعاء routines بنفس الأولوية في ترتيب غير محدد ، ولكن اذا كانت اختيارات initfini المتعددة تحدد نفس الأولوية وكل من برنامج الاعداد للبدء والانهاء ، فانه يحتفظ بالترتيب النسبي للروتين. على سبيل المثال ، اذا قمت بتحديد الاختيارات initfini:i1:f1 و initfini:i2:f2، عندئذ سيتم استدعاء الوظيفة i1 و i2 بترتيب غير محدد ، ولكن اذا تم استدعاء i1 قبل تحميل i2 ، سيتم استدعاء f2 قبل f1 عند الغاء تحميل وحدة البرامج.

ملحوظة:
  1. وفيما يلي الأولويات في النطاقات الشاملة التالية :
    -2,147,483,640 to -2,147,000,000
    -1,999,999,999 to -1,000,000,000
       -99,999,999 to -50,000,000
                 0
        50,000,000 to 99,999,999
     1,000,000,000 to 1,999,999,999
     2,147,000,000 to 2,147,483,640
  2. يتم استدعاء الوظائف المحددة مع اختيار -binitfini بشكل مستقل عن وظائف وحدة التكوين الاستاتيكية أو وظائف التدمير. للحصول على مزيد من المعلومات عن ترتيب الاعداد للبدء ، ارجع الى برنامج dllaمنفتحة الفرعي.
ipath بالنسبة للعناصر المشتركة المعروضة في سطر الأمر ، بدلا من تحديدها مع علامة -l ، قم باستخدام مكون المسار عند عرض العنصر المشترك في قسم التحميل الخاص بملف المخرجات. هذا هو المفترض .
keepfile :كود الملف يمنع مجموعة garbage collection من كود الملف. كقيمة مفترضة ، يقوم binder بحذف CISECTS غير المشار اليه في كل الملفات. يمكنك تكرار هذا الاختيار.
كسول لاتاحة تحميل كسل لوحدات البرامج التابعة لوحدة البرامج. يقوم هذا الاختيار باضافة اختيار -lrtl بعد الشارات والاختيارات الأخرى. اذا تم تحديد اختيار -brtl ، سيتم تجاهل اختيار -blazy ولم يتم اتاحة التحميل الكسول.

عند ربط وحدة برامج ، سيتم حفظ كشف بوحدات البرامج التابعة الخاصة بها في قسم تحميل وحدة البرامج. يقوم برنامج تحميل النظام بتحميل وحدات البرامج التابعة آليا بعد تحميل وحدة البرامج. عند اتاحة عملية تحميل كسول ، يتم تأجيل التحميل لبعض العناصر التابعة حتى يتم استدعاء وظيفة في وحدة البرامج لأول مرة.

تعد وحدة البرامج عبارة عن تحميل كسل عندما تكون كل المراجع الخاصة بوحدة البرامج عبارة عن استدعاءات وظائف. اذا تم الاشارة الى المتغيرات في وحدة البرنامج ، سيتم تحميل وحدة البرامج بالطريقة المعتادة.

ملاحظة : كن حذرا أثناء مقارنة مؤشرات الوظيفة اذا كنت تستخدم تحميل كسول. عادة ما يكون للوظيفة عنوان متفرد لمقارنة اثنين من مؤشرات الوظيفة لتحديد ما اذا كانت تشير الى نفس الوظيفة. عند استخدام التحميل الكسول لربط وحدة برامج ، فان العنوان الخاص بالوظيفة في وحدة البرامج التي تم تحميلها ليس هو نفس العنوان الذي تم احتسابه بواسطة وحدات برامج أخرى. البرامج التي تعتمد على مقارنة مؤشرات الوظيفة يجب ألا تستخدم تحميل كسول.

لمزيد من المعلومات عن التحميل الكسول ، ارجع الى مكتبات مشتركة وتحميل لأقل في مفاهيم البرمجة العامة : برامج الكتابة وتصحيح الأخطاء.

(ل)كود الملف أو loadmap :كود الملف (الحروف السفلية L) يقوم بكتابة كل أمر فرعي binder والنتائج الخاصة به الى كود الملف. كقيمة مفترضة ، لا يتم تكوين أي ملف.
مسار libpath :المسار يقوم باستخدام المسار كمسار للمكتبة عند كتابة قسم برنامج التحميل الخاص بملف المخرجات. لا يتم التحقق من صحة المسار ولا يتم استخدامه عند البحث عن المكتبات التي تم تحديدها بواسطة شارة -l . المسار يقوم باحلال أي من مسارات المكتبة التي تم تكوينها عند استخدام شارة -L .

اذا لم تقم بتحديد أي من شارات -L ، أو اذا قمت بتحديد اختيار nolibpath ، سيتم كتابة معلومات مسار المكتبة المفترضة في قسم التحميل الخاص بملف المخرجات. تعد معلومات مسار المكتبة المفترضة عبارة عن قيمة متغير بيئة تشغيل LIBPATH اذا تم تعريفه ، و /usr/lib:/lib، خلاف ذلك.

loadmap :كود الملف للوظائف نفسها على أنها اختيار (ل)كود الملف .
بيانات lpdata لتحديدF_LPDATAقليلا في عنوان XCOFF للملف القابل للتنفيذ. عند تحديد هذه بت ، ستقوم العملية بطلب صفحات كبيرة للبيانات الخاصة بها.
بند توصيف
ميم :ModuleType أو modtype :ModuleType لتحديد مجال epyt-epyt retcarahc وشارة العنصر المشترك في ملف العنصر elif tcejbo. لا يتم فحص نوع وحدة البرامج بواسطة binder ، ولكن يجب أن يتم تحديده بأي من القيم التالية :
1L
استخدام وحيد. تتطلب وحدة البرامج نسخة خاصة من قسم البيانات لكل تحميل.
أحمر
يعاد استخدامه. تتطلب وحدة البرامج نسخة خاصة من منطقة البيانات لكل عملية تعتمد على وحدة البرامج.
OR
للقراءة فقط. وحدة البرامج هي للقراءة فقط ، ويمكن استخدامها بواسطة عدة عمليات في وقت واحد.
اذا تم استخدام بادئة S في أي من الاختيارات السابقة ، سيتم تحديد العلامة المشتركة في ملف العنصر. برنامج تحميل النظام يحاول مشاركة نسخة واحدة من قسم البيانات الخاص بوحدة برامج RO. خلاف ذلك ، سيتم تجاهل نوع وحدة البرنامج بواسطة وحدة تحميل النظام. القيمة المفترضة هي 1L.
UR
يقوم بتحديد شارة SGETUREGS للخط. عند تحديد شارة SGETUREGS ، يتم تخزين محتويات السجلات في التخزين الوسيط buffer. يتم استخدام هذا الاختيار بواسطة استدعاء نظام coredump.
مناظرة :كود الملف أو R :كود الملف لكتابة خريطة العنوان الخاصة بملف عنصر المخرجات الى كود الملف. يتم فرز الرموز حسب القسم وبعد ذلك عن طريق العنوان. كقيمة مفترضة ، لا يتم تكوين أي ملف. للتعرف على المزيد عن اختيار خريطة ، أنظر مناظرات العنوان.
maxdata :العدد[/(أ)] للوظائف نفسها باعتبارها اختيار د :العدد[ /(أ)].
maxck:العدد أو S :العدد الوظائف التي لها نفس شارة -S .
modtype :ModuleType للوظائف نفسها على أنها اختيار ميم :ModuleType .
nl أو naloadmap لا يتم كتابة الأوامر الفرعية لوحدة الربط والنتائج الخاصة بها الى ملف خريطة التحميل. هذا هو المفترض .
noslr لالغاء التأثير الخاص باختيار aslr سابق على سطر الأمر.
extomeexp يمنع التصدير الآلي لأي من الرموز. الاختيار المفترض هو اختيار excexp .
imot-imp أو no يقوم بربط أي من العناصر التي لم يتم تجريدها من النظام كملفات عنصر عادية. عند استخدام هذا الاختيار ، لن يتم استخدام الجزء loader section للعناصر المشتركة. الاختيار المفترض هو اختيار pimep أو لذا .
ملاحظة : باستخدام أي من هذه الشارات ، تقوم بربط ملف عنصر مشترك بشكل ثابت بأحد التطبيقات. أي تطبيق متصل بشكل ثابت هو لا binary portable من أي تصحيحات fix أو release level لأي تصحيحات أخرى أو مستوى اصدار آخر.
sbigtlls يتم تكوين رسالة خطأ فادح اذا قام برنامج الترجمة بتكوين مراجع مباشرة لمتغيرات سلسلة عمليات-محلية والانتقال الى أحد المتغيرات العامة لأن حجم مساحة التخزين local-local storage أكبر من 64 كيلوبايت. اذا تم تكوين ملف مخرجات ، فلن يتم تشغيله بطريقة صحيحة. الاختيار sbigtlls هو الاختيار المفترض.
bigbtoc يقوم بتكوين رسالة خطأ فادح اذا كان حجم TOC أكبر من 64 كيلوبايت. اذا تم تكوين ملف مخرجات ، فلن يتم تنفيذه بطريقة صحيحة. هذا هو المفترض .
nobind يقوم Omier باستدعاء binder. بدلا من ذلك ، يقوم الأمر ld بكتابة كشف بالأوامر الفرعية binder التي تم تكوينها للمخرجات القياسية. وبصفة مفترضة ، يقوم الأمر ld باستدعاء وحدة الربط.
وحدات برامج العقدة لا يقوم بتجميع الوظائف الثابتة أو وظائف التدمير. هذا هو المفترض .
motprld أو crblld لا يتم دمج ادخالات الانتقال المتعددة (RLs) في نفس العنوان الى RLD واحد. الاختيار المفترض هو اختيار comblbf أو crld .
nodelecdelc يسمح باستخدام كل الرموز الموجودة في CSECT أثناء عملية حل الرموز ، حتى اذا تم تعريف رمز symbol في CSECT في ملف عنصر تم قراءته من قبل. للحصول على مزيد من المعلومات ، ارجع الى الاختيار حشرة . الاختيار nodelecdelc هو الاختيار المفترض.
محو الكل لا يتم ارسال الرموز الا اذا قمت بعرضها في ملف التصدير أو قمت بارسالها باستخدام الاختيار excexp . هذا هو المفترض .
غير كامل لا يتم ارسال الرموز الا اذا قمت بعرضها في ملف التصدير أو قمت بارسالها باستخدام الاختيار excexp . هذا هو الاختيار المفترض ، ما لم يتم استخدام الاختيار svr4 .
ادخال يشير الى أن ملف المخرجات ليس له نقطة ادخال. للاحتفاظ بأي رموز مطلوبة ، قم بتحديدهم باستخدام شارة -u أو باستخدام ملف الارسال. يمكنك أيضا استخدام علامة -r أو اختيارات notnnoc أو gcbtcass للاحتفاظ بكل الرموز الخارجية في بعض أو كل ملفات العنصر. اذا لم يتم استخدام الاختيار ادخال أو اختيار otx ولم يتم ايجاد نقطة الادخال ، سيتم اصدار تحذير. يتم منع ظهور هذا التحذير عند استخدام الاختيار svr4 .
nowermsg لا يتم كتابة رسائل الخطأ الى الخطأ القياسي. استخدم هذا الاختيار اذا قمت بتحديد اختيار غير هادئ وتم تحديد المخرجات القياسية للمسار لأمر مثل شيرت أو pg.
النبلاء forforeimprw يسمح للقراءة فقط CSECT بالاشارة الى الرموز التي تم استقبالها. هذا هو المفترض .
سياسة noforkpolicy يقوم بمحو شارات _AO_FORK_POLICY و _AO_FORK_COR في عنوان XCOFF auxiliary Header ، عند ربط برنامج 64-بت. يتم استخدام أسلوب forktree المفترض ، الا اذا تم تحديد سياسة forkree مع متغير بيئة التشغيل VM_CNTRL. عند ربط برنامج 32-bit ، يتم تجاهل هذه الشارة. هذا هو المفترض .
notnnoc يمنع مجموعة garbage collection. CSECT في كل ملفات العنصر التي تحتوي على رموز عامة يتم الاحتفاظ بها ، سواء تم الاشارة اليها أم لا. الاختيار المفترض هو اختيار gc .
غمزة لمنع أمر ld من ادراج كود الارتباط الشامل. وبصفة مفترضة ، يقوم برنامج الربط بادراج كود الارتباط الشامل.
noipath بالنسبة للعناصر المشتركة المعروضة في سطر الأمر ، بدلا من تحديدها مع علامة -l ، قم باستخدام مكون مسار صفري عند عرض العنصر المشترك في قسم التحميل الخاص بملف المخرجات. يتم دائما استخدام عنصر مسار صفري للعناصر المشتركة المحددة مع شارة -l . لا يؤثر هذا الاختيار على المحددات الخاصة بمكون المسار باستخدام سطر يبدأ به#!في ملف استقبال. الاختيار المفترض هو اختيار ipath .
nolibpath يقوم باحلال أي مسار مكتبة سابق تم تكوينه بواسطة شارة -L أو تم تحديده بواسطة اختيار مسار . بدلا من ذلك ، يتم كتابة معلومات مسار المكتبة المفترضة في قسم التحميل الخاص بملف المخرجات. تعد معلومات مسار المكتبة المفترضة عبارة عن قيمة متغير بيئة تشغيل LIBPATH اذا تم تعريفه ، و /usr/lib:/lib otherwise.
naloadmap للوظائف نفسها كاختيار nl .
بيانات nolpdata يقوم باخلاءF_LPDATAقليلا في عنوان XCOFF للملف القابل للتنفيذ. عندما لا يتم تحديد هذه بت ، ستقوم العملية باستخدام صفحات صغيرة (عادية) للبيانات الخاصة بها.
يوم لا يقوم بعرض ملفات العنصر التي يتم استخدامها لتكوين ملف المخرجات. هذا الاختيار يقوم باحلال شارة -m . هذا هو المفترض .
nobjreorder لا يستخدم منطق اعادة ترتيب CSECT-الأول. يتم ترتيب CSECT في ملف المخرجات بنفس الترتيب الذي تم به تحديد ملفات العنصر وملفات المكتبة على سطر الأمر ، فيما عدا ما يلي :
  • يتم وضع CSECT في الجزء الصحيح من نص أو بيانات أو قسم BSS الخاص بملف العنصر ، وذلك بناءا على مجال فئة مناظرة التخزين لكل CSECT.
  • يتم تجميع كل CSECT مع فئة تخزين-التخزين بالنسبة الى XMC_TC (ثابت عنوان TOC) أو XMC_TD (متغير TOC) معا.

اذا تم تحديد كلا من اختيارات nobjreorder و oreorder ، سيكون لاختيار oreorder الأولوية. الاختيار المفترض هو اختيار اعادة ترتيب .

ملف _ noorder_file لا يتم مناظرة الرموز بترتيب محدد. تقوم هذه الشارة بإلغاء التأثير الخاص بشارة -border_file السابقة. هذا هو المفترض .
nop :ملوب يحدد تعليمات "no-op" التي يتم استخدامها بعد الفروع للروتينات المحلية. ملوب can be one of the special values cror15, cror31, ori, or an eight-digit hexadecimal number. الأمر ori هو المفترض. تحديد اختيار -bnop:cror15 يكون مكافئا لتحديد اختيار -bcror15 ؛ وتحديد اختيار -bnop:cror31 يكون مساويا لتحديد اختيار -bcror31 . اذا قمت بتحديد أحد اختيارات nop الخاصة ، سيتم احلال كل اختيارات nop السابقة

اذا كان ملوب عبارة عن رقم سداسي عشري من ثمانية أرقام ، فانه يقوم بتحديد تعليمات الجهاز الاستبدالية. تقوم تعليمات الجهاز هذه باحلال أي قيمة خاصة تم تحديدها من قبل للأمر ملوب . عند استخدام هذا النموذج ، يمكنك تكرار هذا الاختيار.

آخر تعليمات الجهاز التي تم تحديدها هي التعليمات التي يتم تكوينها بواسطة وحدة الربط بعد الأفرع الخاصة بوحدة البرامج. يتم التعرف على تعليمات الجهاز الأخرى المحددة على أنها تعليمات غير -op ، ولكن يتم تحويلها الى تعليمات no-op المفضلة.

بداية التغييرnoplugin_optنهاية التغيير بداية التغييريقوم باستبعاد أي اختيارات plug-in سابقة يتم تحديدها مع اختيار plugin_opt .نهاية التغيير
غير هادئ لكتابة الأمر الفرعي لكل من وحدات الربط والنتائج الخاصة به للمخرجات القياسية. الاختيار المفترض هو اختيار هدوء .
oreorder لا تقوم باعادة طلب CSECs ، فيما عدا دمج كل XMC_TC (ثابت عنوان TOC) و XMC_TD (متغير TOC) CSECT ووضعها في قسم البيانات ، ودمج كل رموز BSS ووضعها في قسم bss. يتم وضع كل CSECs الأخرى في قسم النص ، لذلك يتم خلط النص والبيانات في ملف المخرجات. عند استخدام اختيار oreorder ، فان قسم النص لملف المخرجات قد لا يكون بموضع مستقل ولن يقوم برنامج تحميل النظام بتحميل وحدة برامج اذا لم يكن قسم النص بموضع-مستقل. لذلك ، قم بتجنب استخدام هذا الاختيار للبرامج ولاحقات kernel. اذا تم تحديد كلا من اختيارات nobjreorder و oreorder ، سيكون لاختيار oreorder الأولوية. الاختيار المفترض هو اختيار اعادة ترتيب .
nortl يقوم بالغاء اتاحة ربط وقت التشغيل لملف المخرجات. يشير هذا الاختيار الى اختيارات nortllib و ylyommomic- . بالاضافة الى ذلك ، لا يتم اتخاذ تصرفات اضافية تم شرحها تحت اختيار rtl . هذا هو الاختيار المفترض ما لم يتم استخدام الاختيار svr4 .
nortllib لا يتضمن أي مرجع الى ener-time enker. اذا تم ربط البرنامج الرئيسي بهذا الاختيار ، لن يتم تنفيذ عملية ربط وقت التشغيل في البرنامج ، بصرف النظر عن الطريقة التي يتم بها ربط أي من وحدات البرامج المشتركة التي يتم استخدامها بواسطة البرنامج. هذا هو الاختيار المفترض ما لم يتم استخدام الاختيار svr4 .
norwexec يحدد أنه اذا كانت محددات sed_config الخاصة بالنظام غير فعاله ، فان مساحات البيانات الخاصة بالعملية سيكون لها تصريح غير-تنفيذ.
smrsymمتماثلة لمنع تحديد شارة _AOUT_SHR_SYMATB من عنصر المخرجات. هذه هي الحالة المفترضة.
إيستاببلراث يمنع الجزء الخاص بتصحيح الأخطاء الذي سيتم كتابته في ملف مخرجات بديل مع اللاحقة .طعنة. تعد هذه هي المحددات المفترضة.
noبط لا يتم تكوين ملف مخرجات تم تجريده. لذلك ، يتم كتابة جدول الرموز ومعلومات النقل في ملف المخرجات. هذا الاختيار يقوم باحلال شارة -s . هذا هو المفترض .
غير متزامن يتم تخصيص الخاصية المميزة غير متزامن لمعظم الرموز التي تم تصديرها بدون خاصية مميزة صريحة. للحصول على مزيد من المعلومات ، ارجع الى الخصائص المميزة للرموز التي تم تصديرها. الاختيار المفترض هو اختيار ylyommomic- .
ylyommomic- يتم تخصيص الخاصية المميزة ylyommomic- لمعظم الرموز التي تم تصديرها بدون خاصية مميزة صريحة. للحصول على مزيد من المعلومات ، ارجع الى الخواص المميزة للرموز التي تم تصديرها. هذا هو المفترض .
notextro أو . يا أخي لا يتم التحقق للتأكد من عدم وجود ادخالات لنقل وقت التحميل لقسم النص الخاص بملف عنصر المخرجات. هذا هو المفترض .
notmpretlname لا يقوم برنامج الربط بالتحقق من عمليات استنساخ عامة.
ملاحظة : هذا الاختيار مطلوب فقط لنمط 32-bit. يتم تجاهل هذا الاختيار عند تكوين عناصر 64-bit.
خطأ مطبعي لا تقوم بالتحقق من أنواع معاملات-الوظائف بين الاستدعاءات الوظيفية الخارجية. الاختيار المفترض هو اختيار خطأ مطبعي .
نوفمبر لا يتم كتابة معلومات اضافية لملف خريطة التحميل. هذا الاختيار هو الاختيار المفترض ويقوم باحلال شارة v -v .
nolaknoلجية حل الرموز الضعيفة باستخدام أمر البحث العادي. هذا الاختيار يقوم باحلال اختيار اضعف . هذا هو الاختيار المفترض.
otx لا يتم جعل ملف المخرجات قابل للتنفيذ. لا يتم كتابة العنوان الاضافي أو قسم التحميل. الشارات والاختيارات التي تحدد القيم المكتوبة بجزء العنوان الاضافي أو وحدة التحميل ليس لها أي تأثير عند استخدام هذا الاختيار. الاختيار المفترض هو اختيار x .
. يا أخي للوظائف نفسها كاختيار notextro .
no للوظائف نفسها كاختيار imot-imp .
order_file :كود الملف رموز الخرائط التي يتم عرضها في كود الملف في الترتيب المحدد. الرموز التي يتم عرضها في الملف يتم مناظرتها قبل رموز أخرى لنفس فئة مناظرة التخزين. أسماء الوظائف التي تم تحديدها في الملف يجب أن تبدأ بنقطة لأن اسم الوظيفة بدون نقطة يشير الى موصف وظيفة.
ترتيب :المواصفات يقوم بالتحكم في الترتيب الذي يتم به تحديد بعض الرموز في ملف المخرجات. يمكن أن تكون المحددات هي :
toc :ffierf
اذا تم استخدام شارة -border_file ، فان رموز TOC التي يتم الاشارة اليها بواسطة أي وظيفة يتم عرضها في ملف الطلب ، يتم مناظرتها قبل رموز TOC الأخرى. خلاف ذلك ، سيتم تجاهل هذه المحددات.
toc :nofilefnof
لا يقوم بطلب رموز TOC التي تعتمد على ملف الترتيب.
ootoc
لا يقوم بطلب رموز TOC بأي طريقة خاصة.
pD :الأصل يحدد الأصل على أنه عنوان البايت الأول الخاص بصفحة الملف التي تحتوي على بداية قسم البيانات. على سبيل المثال ، اذا كان قسم البيانات يبدأ عند موضع البدء0x22A0في ملف العنصر ، وpD:0x20000000يتم تحديده ، ويتم تخصيص عنوان البايت الأول لقسم البيانات0x200002A0. هذا يفترض حجم صفحة 4096 (0x1000) بايت.
ملاحظة : اذا تم تحديد كل من تعليم -bpD و -D ، فان الشارة الأخيرة تكون لها الأسبقية.
بداية التغييرالبرنامج المساعد :مسارنهاية التغيير بداية التغييريحدد المسار الكامل لبرنامج الترجمة plug-in. يتم تكوين هذا الاختيار بواسطة برنامج الترجمة ، اذا لزم الأمر.

اذا كنت ترغب في الغاء مسار plug-in المحدد سابقا ، لا تقم بتحديد متغير مسار ، هذا هو ،-bplugin:

اذا كان ملف المدخلات هو ملف bitcode أو ملف تخزين يحتوي على ملف bitcode file ، ولم يتم تحديد مسار plug-in ، سيفشل أمر ld .

نهاية التغيير
بداية التغييرplugin_opt :اختيار-pluginنهاية التغيير بداية التغييريحدد اختيار ليتم تمريره الى برنامج الترجمة plug-in. يمكنك تحديدplugin_optالاختيار عدة مرات. يتم تكوين هذا الاختيار بواسطة برنامج الترجمة.نهاية التغيير
pT :الأصل يحدد الأصل على أنه عنوان البايت الأول الخاص بصفحة الملف التي تحتوي على بداية جزء النص. على سبيل المثال ، اذا كان قسم النص يبدأ عند موضع البدء0x264في ملف العنصر ، وpT:0x10000000يتم تحديده ، يتم تخصيص عنوان البايت الأول الخاص بالجزء الخاص بالنص.0x10000264.
ملاحظة : اذا تم تحديد كل من تعليم -bpT و -لا ، فان الشارة الأخيرة تكون لها الأسبقية. ارجع الى شارة -لا للحصول على مزيد من المعلومات.
هدوء لا يتم كتابة الأوامر الفرعية binder والنتائج الخاصة بها للمخرجات القياسية. هذا هو المفترض .
بند توصيف
R :كود الملف للوظائف نفسها على أنها اختيار مناظرة :كود الملف .
(ص) أو اعادة ترتيب لاعادة ترتيب CSECT كجزء من تشغيل الأمر حفظ . تقوم عملية اعادة الطلب بترتيب CSECs لنفس فئة مناظرة-التخزين بالقرب من المرجع. هذا هو المفترض .
حمير يتم تحديد شارة في العنوان الاضافي لوحدة برامج المخرجات للدلالة على أن وحدة البرامج هي كل من أمان مفتاح تخزين واستعادة آمنة. للحصول على مزيد من المعلومات عن كيفية جعل لاحقة kernel هي مفتاح الأمان والاستعادة الآمنة ، ارجع الىلاحقات Kernel و Device Support Programming Concepts .
اعادة تسمية :رمز ، الاسم الجديد لاعادة تسمية الرمز الخارجي الرمز الى الاسم الجديد. في الواقع ، هو كما لو أن كل التعريفات والمراجع الى الرمز في كل ملفات العنصر تم اعادة تسميتها الى الاسم الجديد قبل أن يتم تشغيل الملفات. افتراضيا ، لا يتم اعادة تسمية الرموز.
اعادة ترتيب للوظائف نفسها كاختيار (ص) .
يا أخي أو نص يقوم بالتأكد من عدم وجود ادخالات لنقل وقت التحميل لقسم النص الخاص بملف العنصر الناتج. الاختيار المفترض هو اختيار . يا أخي .
rtl لاتاحة عملية ربط وقت التشغيل لملف المخرجات. يشير هذا الاختيار الى اختيارات litlib و رمزي .

عندما يكون النمط الديناميكي فعال (ارجع الى اختيارات ديناميكي و ثابت ) ، فان اختيار rtl يسمح بانهاء ملفات الادخال التي تم تحديدها مع شارة -l في . لذلك بالاضافة الى .a.

يتم عرض كل ملفات المدخلات التي تعد عناصر مشتركة كعناصر تابعة للبرنامج الخاص بك في قسم تحميل ملفات المخرجات. يتم عرض العناصر المشتركة بنفس الترتيب الذي تم تحديدهم به في سطر الأمر.

يتم عرض العنصر المشترك المتضمن في ملف التخزين فقط اذا قام التخزين بتحديد التحميل الآلي لعنصر العنصر المشترك. يتم تحديد التحميل الآلي لأحد عناصر التخزين foo.o من خلال تكوين ملف استقبال باستخدام الخطوط التالية :

# autoload 
#! (foo.o) 

واضافة ملف الاستقبال كعنصر الى ملف التخزين.

يمكنك أيضا تحديد التحميل الآلي لنص الطرف لملف التخزين .o باستخدام اختيار -bautoload :
-bautoload:<archive_name>(foo.o)
يمكنك تحديد عناصر تخزين اضافية باستخدام -bautoloadsاضافية.

اذا كان السطر الأول من ملف الاستقبال يبدأ باستخدام#!(علامة الرقم ، علامة التعجب) ، يمكنك تحديد الملف على سطر الأمر على أنه ملف InputFileعادي. والا ، يجب أن تقوم باستخدام الاختيار -bI أو -استقبال لتحديد ملف الاستقبال.

litlib يتضمن مرجع الى ener-time enker. يتم تعريف خط الوقت run-time في libran.libra، ويتم اضافة شارة -lrtl ضمنية آليا الى سطر الأمر. يجب استخدام هذا الاختيار (متضمن بواسطة اختيار rtl ) عند الاتصال ببرنامج رئيسي أو بدون حدوث عملية ربط لوقت التشغيل. لا يجب أن يتم ربط العناصر المشتركة مع هذا الاختيار. الاختيار المفترض هو اختيار nortllib ما لم يتم استخدام اختيار svr4 .
rwexec يحدد أنه سيتم تحديد تصاريح التنفيذ الخاصة بمناطق البيانات الخاصة بالعملية وفقا لمحددات sed_config الخاصة بالنظام. هذا هو المفترض .
rwexec_يجب يحدد أن مساحات البيانات الخاصة بالعملية سيكون لها تصريح التنفيذ ، بصرف النظر عن محددات sed_config الخاصة بالنظام.
S :العدد الوظائف التي لها نفس شارة -S .
الاستدعاءات :كود الملف لكتابة مناظرة العنوان الخاصة بملف العنصر الى كود الملف. الرموز هي مرتبة أبجديا. بالنسبة لكل رمز يتم عرضه في الخريطة ، سيتم عرض مراجع من الرمز الى الرموز الأخرى. كقيمة مفترضة ، لا يتم تكوين أي ملف. للتعرف على المزيد عن اختيار استدعاءات ، أنظر مناظرات العنوان.
مشاركة للوظائف نفسها كاختيار ديناميكي .
mrmsytab في نمط 64-bit ، يقوم بتحديد شارة _AOUT_SHR_SYMTAB في العنوان الاضافي XCOFF. اذا كان الملف عبارة عن برنامج 64-بت ، سيتم تكوين جدول رمز مشترك عند تشغيل البرنامج. اذا كان شارة هو عنصر 64-bit ولكن ليس برنامج 64-بت ، يمكن تحديد شارة _AOUT_SHR_SYMTAB ، ولكن لا يكون لها أي تأثير في وقت التشغيل. في نمط 32-bit ، يتم تجاهل هذه الشارة. الاختيار المفترض هو smrsymمتماثلة.
smap :كود الملف لكتابة مناظرة العنوان الخاصة بملف العنصر الى كود الملف. الرموز هي مرتبة أبجديا. كقيمة مفترضة ، لا يتم تكوين أي ملف. للتعرف على المزيد عن اختيار smp ، ارجع الى مناظرات العنوان التالي.
لذا للوظائف نفسها كاختيار pimep .
طعنفي :المستوى يحدد مستوى الدمج للعبارات التي تم طعنها في قسم تصحيح الأخطاء. Stabstrings عبارة عن سلاسل بيانات أطول من ثمانية حروف. يكون لكل مجموعة حروف فرعية في جدول الرموز ازاحة خاصة بها في قسم تصحيح الأخطاء. القيم التالية تعتبر صحيحة بالنسبة الى المستوى:
0
لا يتم دمجه. سيتم كتابة نسخ منفصلة من sgnirts المزدوجة الى قسم ازالة الخطأ.
1
يتم حذف التكرارات. كل طعن يكتب مرة إلى.debugالقسم. يقوم Duplicate طعما في جدول الرموز بتحديد نفس مقدار الازاحة الى قسم تصحيح الأخطاء.
2
يتم اعادة ترقيم طعنات الشرطة وحذف معظم التكرارات. (في بعض الحالات ، يمكن أن توجد شرطة للشرطة متعددة. وهي تقوم بوصف نفس النوع ولكنها تستخدم أرقام أنواع مختلفة.) نطاق رقم النوع هو ملف المخرجات بالكامل ، بدلا من ملف مدخلات واحد كما هو مشار اليه بواسطة ادخال جدول رمز C_FILE.
اذا لم يتعرف وحدة الربط binder على مجموعة حروف (brestring) ، سيقوم بارجاع رسالة خطأ ولا يحتوي الملف القابل للتنفيذ الناتج على brestrings صحيح. لم يتأثر باقي الملف بالخطأ.
المماخبث يؤدي الى كتابة قسم ازالة الخطأ الى ملف مخرجات بديل مع اللاحقة .طعنة.
Skackpsize :pize يتم طلب حجم صفحة pize بالبايت لعملية تجميع سلسلة العمليات الرئيسية. يمكن تحديد القيمة على أنها رقم عشري أو سداسي عشري أو ثماني. تكون محددات الرقم هي نفسها لغة برمجة C. بالاضافة الى ذلك ، يمكن تحديد حجم الصفحة على أنه رقم متبوعة بلاحقة ذات-حرف واحد :
  • k أو K للكيلو أو لبايت 0x400 بايت
  • m أو M لأجل mega أو 0x100000 bytes
  • g أو G للحصول على gigga أو 0x40000000 بايت
  • T أو T الى tera أو 0x10000000000 بايت
  • p أو P لبيبايت أو 0x4000000000000 بايت
  • X أو X الى exo أو 0x1000000000000000 بايت
على سبيل المثال ، اما-b stackpsize:16kأو-b stackpsize:0x4000سيقوم بطلب 0x4000 لتشغيل حزمة سلسلة العمليات الرئيسية وتحديدF_VARPGفي نص رأس XCOFF بت.
استاتيكي يؤدي الى أن يقوم الخط بتشغيل العناصر المشتركة المتتابعة في نمط ثابت. في النمط الاستاتيكي ، يتم ربط العناصر المشتركة بشكل ثابت في ملف المخرجات.
svr4 يقوم هذا الاختيار بتغيير المعاني الخاصة ببعض الاختيارات الأخرى الموجودة على سطر الأمر والتصرف القياسي للخط. ولها التأثير التالي على الخط :
  • -b rtl تم تحديده
  • يتم تحديد -b rtllib فقط عند بناء ملف قابل للتنفيذ أو اذا لم يتم تحديده بشكل صريح الى -b norllib
  • -b symbolic is set only when building an executable or if not set explicitly by one of -b رمزية, -b غير متزامن, or -b nomymboyic-
  • يتم تحديد -b expull فقط عندما تكون عملية ارسال ه-ب أو -b موجودة
  • -b nosnosab تم تحديده
  • -d، بدلا من أن يتم تجاهله ، يتم اعادة تعريفه ويمكن أن يقوم بافتراض اثنين من القيم : -dy أو -dn
  • -R، بدلا من أن يتم تجاهله ، يأخذ اختيار فرعي واحد يقوم بتعريف مسار بحث مكتبة التشغيل
  • -z, instead of being a synonym of the ك- option, takes either defs, النبلاء, متعدد المهام, نص, nowarntxet, or warntext, as a suboption
  • الأدلة المحددة مع اختيار -L لا يتم تضمينها في مسار بحث مكتبات التشغيل
sxref :كود الملف لكتابة مناظرة العنوان الخاصة بملف العنصر الى كود الملف. الرموز هي مرتبة أبجديا. بالنسبة لكل رمز يتم عرضه في الخريطة ، سيتم عرض مراجع لرمز من رموز أخرى. كقيمة مفترضة ، لا يتم تكوين أي ملف. للحصول على مزيد من المعلومات عن اختيار sxref ، ارجع الى خرائط العناوين. على ما يلي :
رمزي يتم تخصيص الخاصية المميزة رمزي لمعظم الرموز التي تم تصديرها بدون خاصية مميزة صريحة. للحصول على مزيد من المعلومات ، ارجع الى الخصائص المميزة للرموز التي تم تصديرها التالي. هذا هو المفترض عند استخدام اختيار svr4 ؛ خلاف ذلك ، يكون الاختيار المفترض هو اختيار رمزي- .
نص مثل اختيار يا أخي .
حجم النص :pize يتم طلب حجم الصفحة pize بالبايت للنص. يمكن تحديد القيمة على أنها رقم عشري أو سداسي عشري أو ثماني. تكون محددات الرقم هي نفسها لغة برمجة C. بالاضافة الى ذلك ، يمكن تحديد حجم الصفحة على أنه رقم متبوعة بلاحقة ذات-حرف واحد :
  • k أو K للكيلو أو لبايت 0x400 بايت
  • m أو M لأجل mega أو 0x100000 bytes
  • g أو G للحصول على gigga أو 0x40000000 بايت
  • T أو T الى tera أو 0x10000000000 بايت
  • p أو P لبيبايت أو 0x4000000000000 بايت
  • X أو X الى exo أو 0x1000000000000000 بايت
على سبيل المثال ، اما-b textpsize:16kأو-b textpsize:0x4000سيقوم بطلب 0x4000 للنص وتحديدF_VARPGفي نص رأس XCOFF بت.
اعادة تسمية يحدد أنه يجب التحقق من binder للنسخ العامة. تقوم وحدة الربط بالتحقق من أي رمز للنموذج __tfNNxxx_الاسم وتقوم باعادة تسمية الرمز الى الاسم. الاختيار المفترض هو -bnotmplemaname.
ملاحظة : هذا الاختيار مطلوب فقط لنمط 32-bit. يتم تجاهل هذا الاختيار عند تكوين عناصر 64-bit.
خطأ مطبعي يقوم بالتحقق من نوع معامل-نوع المعامل بين الاستدعاءات الوظيفية الخارجية. يمكن أن يتم تضمين معلومات التحقق من نوع المعامل في ملفات العنصر بواسطة وحدات التجميع ووحدات التجميع. هذا هو المفترض .

للحصول على مزيد من المعلومات عن عملية التحقق من النوع ، ارجع الى نسق ملف XCOFF (aut) في مرجع الملفات.

اضعف يحدد أنه يتم البحث عن الرموز الضعيفة لأول مرة في ملفات العنصر التي يتم الاشارة اليها بها. اذا لم يتم ايجاد الرموز هناك ، يتم استئناف أمر البحث العادي.
x لجعل ملف المخرجات قابل للتنفيذ ، اذا لم يكن هناك أي أخطاء. هذا هو الاختيار المفترض.
X أو xref :كود الملف لكتابة مناظرة العنوان الخاصة بملف العنصر الى كود الملف. يتم فرز الرموز حسب القسم وبعد ذلك عن طريق العنوان. بالنسبة لكل رمز يتم عرضه في الخريطة ، سيتم عرض مراجع لرمز من رموز أخرى. كقيمة مفترضة ، لا يتم تكوين أي ملف. للتعرف على المزيد عن اختيار xref ، ارجع الى مناظرات العنوان التالي.

ربط وقت التشغيل

افتراضيا ، يتم ربط المراجع للرموز في العناصر المشتركة بوقت الوصلة. وهذا يعني أن وحدة برامج المخرجات تقوم بارفاق رمز تم استقباله مع تعريف في عنصر مشترك معين. في وقت التحميل ، يتم استخدام التعريف الموجود في العنصر المشترك المحدد حتى اذا قامت عناصر مشتركة أخرى بارسال نفس الرمز.

يمكنك أن تقوم باستخدام البرنامج الخاص بك لاستخدام ener-time enker ، مما يسمح لبعض الرموز بأن تكون مرتدة في وقت التحميل. لتكوين برنامج يقوم باستخدام خط تشغيل-وقت التشغيل ، قم بربط البرنامج بالاختيار -brtl . وتؤثر الطريقة التي ترتبط بها الوحدات المشتركة في الربط بين إعادة استخدام الرموز.

يمكنك بناء عناصر مشتركة تم اتاحتها لعملية ربط وقت التشغيل باستخدام شارة -G . يمكنك اتاحة عملية ربط وقت التشغيل بالكامل للعناصر المشتركة الموجودة عن طريق اعادة ربطهم بأمر rtl_enable ، طالما أنهم لم يتم تجريدهم.

الرمز الرؤية

يمكن تعليم الرموز الشاملة والضعيفة في ملف عنصر المدخلات بامكانية الرؤية. تم تعريف أربعة من أحاسيس الرموز.

الجدول 1 الرمز الرؤية
رمز امكانية الرؤية
داخلي لا يتم ارسال الرمز. يجب ألا يتم اتاحة عنوان الرمز للبرامج الأخرى أو العناصر المشتركة ، ولكن لا يقوم الخط بالتحقق من ذلك.
اخفاء لم يتم ارسال الرمز
محمي يتم تصدير الرمز ولكن لا يمكن أن يتم استعافيته (أو ما قبله) ، حتى اذا كان يتم استخدام وصلة وقت التشغيل.
تم التصدير يتم ارسال الرمز مع الخاصية المميزة للتصدير الشاملة.

يمكن أن يتم تحديد امكانية ظهور الرمز في ملف مصدر وحدة التجميع. وبعض مجمعي البيانات يؤيدون الرؤية كذلك. ارجع الى وثيقة برنامج الترجمة الخاصة بك للتعرف على التفاصيل.

يمكن أيضا استخدام ملفات الارسال لتحديد امكانية الرؤية لرمز symbol. عادة ، يكون لمدى الرؤية المحدد في ملف الارسال الأسبقية على الرؤية المحددة في ملف العنصر. يقوم هذا الخط بعرض امكانية ظهور الرموز عند تكوين كشف الارسال للبرنامج أو العنصر المشترك.

استقبال وارسال نسق ملف (-bI : and -bE : علامات)

يحتوي كل سطر داخل ملف استقبال أو تصدير على اسم رمز ، واختياريا يتبعه عنوان أو كلمة مرشدة. Primary keywords are c, svc32, svc3264, svc64, syscscs, syscall32, syscall3264, syscall64, رمزي, غير متزامن, ylyommomic-, كشف, سنتيمتر, ss, داخلي, مخفي, محمي, and ارسال. الكلمات المرشدة الاضافية هي ضعيف و مطلوب، والتي يمكن استخدامها بالاقتران مع كلمة مرشدة أخرى.

في ملف الاستقبال ، يسمح تحديد العنوان بتحديد رمز الى عنوان ثابت ، مثل عنوان في جزء الذاكرة المشتركة. يمكنك أيضا استخدام واحدة من الكلمات المرشدة سنتيمترأو ssأو ضعيف لتحديد فئة التخزين لرمز تم استقباله. عند استخدام اختيار excexp ، فان فئة التخزين لرمز تم استقباله تؤثر على الرموز التي يتم تصديرها آليا. اذا تم تحديد أي كلمة مرشدة أخرى في ملف استقبال ، سيتم تجاهل الكلمة المرشدة.

In an export file, you can use the c, svc32, svc3264, svc64, syscscs, syscall32, syscall3264, or syscall64 keyword after a function name to indicate that the function is a system call. يكون هذا مطلوبا عند ربط امتدادات kernel. اذا لم يكن ملف المخرجات عبارة عن لاحقة kernel ، فان هذه الكلمات المرشدة تكون مساوية للكلمة المرشدة رمزي .

يمكنك استخدام الكلمة المرشدة كشف لكي يتم عرض الرمز في قسم التحميل الخاص بملف المخرجات ، بالرغم من أنه لن يتم تعليمه على أنه رموز تم ارسالها. يمكن استخدام ذلك للتطبيقات التي ترغب في تشغيل بعض الرموز في وقت التشغيل. لا يتم تشغيل الرموز المعروضة بواسطة وحدة تحميل النظام أو كتر وقت التشغيل.

يمكنك استخدام الكلمة المرشدة رمزيأو غير متزامنأو غير متزامن-لارفاق خاصية مميزة مع رمز تم تصديره. سيتم تجاهل عنوان الرمز في ملف الارسال. في ملف الارسال ، الكلمات المرشدة سنتيمتر و ss تكون مساوية للكلمة المرشدة غير متزامن . The visibility of a symbol can be specified with the داخلي ، مخفي, محمي, or ارسال keywords. للحصول على مزيد من المعلومات ، ارجع الى.الخصائص المميزة للرموز التي تم تصديرها

الكلمة المرشدة ضعيف يمكن استخدامها لتحديد ربط رمز ضعيف ، ويمكن استخدامها مع خاصية مميزة أخرى.

قم باستخدام الكلمة المرشدة مطلوب للتحقق من أنه تم تعريف رمز ولم يتم استقباله. تم طباعة خطأ للرموز التي لا تستوفي هذه المعايير.

يقوم الأمر ld بالتعامل مع ملفات الاستقبال والتصدير وفقا للمبادئ التوجيهية التالية :

  • سيتم تجاهل سطر خالي.
  • يعد السطر الذي يبدأ بالعلامة * (العلامة النجمية) عبارة عن تعقيب ويتم تجاهله.
  • يتيح الخط الذي يبدأ بواسطة # (# ، مسافة خالية) المعاملات الخاصة بالأمر الفرعي تحديد setopt binder (-bdbg :الخيار). على سبيل المثال ، الخط الذي يحتوي على# verboseيؤدي الى قيام binder بعرض كل رمز كما تم قراءته من الملف. تكون محددات الاختيار هذه فعالة فقط أثناء تشغيل الملف. يمكن استخدام اختيارات # 32, # 64, # no32, و # no64 لتحديد ما اذا كان يجب استخدام الرموز المعروضة لوصلات 32-bit ، أو وصلات 64-بت ، أو كلاهما.

    اختيارات ملف استقبال 32-bit و 64-bit

    بند توصيف
    23 يتم استخدام هذا الاختيار في ملف استقبال أو ارسال لتحديد الرموز التالية التي يجب تشغيلها عند الاتصال بنمط 32-bit ، ولكن يتم تجاهلها عند الاتصال بنمط 64-bit. اذا لم يتم تحديد اختيار 32 أو 64 ، يتم تشغيل كل الرموز في أنماط 32-و 64-بت معا.
    64 يتم استخدام هذا الاختيار في ملف استقبال أو ارسال لتحديد الرموز التالية التي يجب تشغيلها عند الاتصال في نمط 64-bit ، ولكن يتم تجاهلها عند الاتصال في نمط 32-bit. اذا لم يتم تحديد اختيار 32 أو 64 ، يتم تشغيل كل الرموز في أنماط 32-و 64-بت معا.
    no32 أو no64 قم باحلال 32 أو 64سابق. الرموز المتتالية يتم تشغيلها في أنماط 32-و 64-بت معا.
  • عند تشغيل ملف استقبال ، سطر يبدأ بالعلامة #! (# ، علامة التعجب) يتيح اسم المكتبة المشتركة ليتم ارفاقها مع رموز الاستقبال المتتابعة. يمكن أن يحدث الخط أكثر من مرة وينطبق على الرموز التالية حتى السطر التالي الذي يبدأ بالحروف #!هو قراءة. يتم وضع معلومات اسم الملف هذه في قسم التحميل الخاص بملف عنصر XCOFF. يتم استخدامه بواسطة وحدة تحميل النظام لايجاد ملف العنصر المناسب في وقت التنفيذ. اذا كان اسم ملف الاستقبال هو ipath/ifile (imimer) ، فسيتم تحديد اسم الملف الذي يتم وضعه في الجزء الخاص بوحدة التحميل بناء على اسم ملف الاستقبال ومحتوياته#!السطر الخاص بملف الاستقبال ، كما يلي :
    بند توصيف
    #! "لا شيء بعد" #!) استخدم مسار null ، وملف عبارة عن لا شيء ، ورقم صفري. يتم التعامل مع هذا على أنه عملية استقبال مؤجلة بواسطة وحدة تحميل النظام.
    #! () استخدامipath,ifile، وimember. يمكن استخدام هذا الخط اذا تم تحديد ملف الاستقبال على أنه معامل ملف InputFile في سطر الأمر. يجب أن يبدأ الملف باستخدام#!في هذه الحالة يمكن أيضا استخدام هذا الخط لاستعادة الاسم المفترض اذا كان قد تم تغييره بواسطة آخر#!الخط.
    #! مسار/ملف (عضو) استخدم المسار المحدد والملف والعنصر.
    #! مسار/ملف استخدم المسار والملف المحدد ، والعنصر عديم القيمة.
    #! ملف استخدم مسار صفري ، والملف المحدد ، وعنصر صفري. في وقت التشغيل ، يتم البحث في كشف بالأدلة لايجاد العنصر المشترك.
    #! (عضو) استخدامipath,ifile، والعنصر المحدد. في وقت التشغيل ، يتم البحث في كشف بالأدلة لايجاد العنصر المشترك.
    #! ملف (عضو) استخدم مسار صفري وملف وعنصر محدد. في وقت التشغيل ، يتم البحث في كشف بالأدلة لايجاد العنصر المشترك.
    #! . (نقطة مفردة) هذا الاسم يشير الى الملف القابل للتنفيذ الرئيسي. استخدم اسم الملف هذا عندما تقوم بتكوين عنصر مشترك يقوم باستقبال رموز من برامج رئيسية متعددة بأسماء مختلفة. يجب أن يقوم البرنامج الرئيسي بارسال الرموز التي تم استقبالها بواسطة وحدات برامج أخرى ، أو ستفشل عملية التحميل. يمكن استخدام اسم ملف الاستقبال هذا مع أو بدون لينكر وقت التشغيل.
    #! .. (نقطتين) قم باستخدام هذا الاسم لعرض الرموز التي سيتم حلها بواسطة eniler-time linker. قم باستخدام اسم الملف هذا لتكوين العناصر المشتركة التي سيتم استخدامها بواسطة البرامج التي تقوم باستخدام خط الوقت run-time linker. اذا قمت باستخدام وحدة برامج تقوم باستقبال الرموز من .. في البرنامج الذي لم يتم ربطه مع اختيار litlib ، سيتم حل الرموز ، والاشارات الى مثل هذه الرموز سينتج عنها تصرف غير معرف.

لتحميل عناصر التخزين آليا عند استخدام اختيار -brtl ، يمكنك تكوين ملف استقبال كما يلي. اذا كان ... لذا عبارة عن عنصر مشترك في ملف تخزين ، قم بتكوين ملف استقبال :

# autoload
#! (shr.so)

يمكنك عرض أسماء الأعضاء الاضافية على سطور اضافية ، ان أمكن. لا يجب أن تقوم بعرض أسماء الرموز في ملف الاستقبال لأنه سيتم قراءة الرموز التي تم استقبالها من ... لذا من ... لذا نفسها.

للحصول على مزيد من المعلومات عن تكوين مكتبة مشتركة ، ارجع الى كيفية تكوين مكتبة مشتركة في مفاهيم البرمجة العامة : برامج الكتابة وتصحيح الأخطاء. للحصول على مزيد من المعلومات عن التحميل والربط ، ارجع الى برنامج تحميل الفرعي.

الخصائص المميزة للرموز التي تم تصديرها

عند استخدام عملية ربط وقت التشغيل ، يمكن فقط اعادة الاشارة الى رمز symbol في نفس وحدة البرنامج eludom فقط اذا تم ارسال الرمز باستخدام الخاصية المميزة الصحيحة. لا يمكن أن يتم اعادة الاشارة الى الرموز التي لها الخاصية المميزة رمزي . يمكن أن يتم اعادة الاشارة الى الرموز التي لها الخاصية المميزة غير متزامن . يمكن اعادة مشاهدة المراجع للرموز ذات الخاصية المميزة ylyommomic- اذا كانت الرموز هي متغيرات. بالنسبة لرموز الوظيفة ، يمكن اعادة استدعاء الاستدعاءات التي تستخدم مؤشر الوظيفة ، في حين لا يمكن أن يتم اعادة تشغيل استدعاءات الوظيفة المباشرة. الخاصية المميزة ylyommomic- هي القيمة المفترضة ويتم اتاحتها للتوافق مع النسخ السابقة من نظام التشغيل ، ولكن لا يفضل استخدامها.

اذا كنت لا تستخدم خط الوقت run-time ، تجنب باستخدام الخاصية المميزة غير متزامن لأنه سيتم عمل استدعاء وظيفة داخل وحدة برامج داخلية بطريقة غير مباشرة من خلال موصف وظيفة باستخدام كود الارتباط الشامل. خلاف ذلك ، لا يكون للخاصية المميزة للرموز التي تم ارسالها أي تأثير على وحدات البرامج التي يتم استخدامها مع البرامج التي لا تستخدم كتير وقت التشغيل.

يمكنك تحديد خاصية مميزة للارسال صريح للرموز المعروضة في ملف الارسال. يتم تصدير معظم الرموز بدون خاصية مميزة واضحة مع الخاصية المميزة المفترضة للتصدير ، كما هو محدد مع اختيارات رمزيأو غير متزامنأو ylyommomic- .

اذا تم عرض الرمز في ملف الارسال بدون استخدام كلمة مرشدة ، وتم تحديد امكانية رؤية الرمز في ملف المدخلات ، سيتم الاحتفاظ برؤية الرمز. An input symbol’s visibility can be overridden by using the داخلي ، مخفي, محمي, or ارسال keyword.

ستقوم الخاصية المميزة لتصدير ضعيف بتعليم نوع المناظرة الخاص بالرمز المرفق مع L_WEAK في قسم التحميل.

قد تحتوي الرموز التي تم استقبالها على الخاصية المميزة لارسال ضعيف فقط. اذا تم استقبال رمز من وحدة برامج أخرى ، فان كل الاشارات المرجعية للرمز يمكن أن تنتعش. ولكن ، اذا تم استقبال رمز في عنوان ثابت ، سيتم ربط كل الاشارات المرجعية بهذا العنوان الثابت ولا يمكن ارتدادها بواسطة خط وقت التشغيل. يجب أن يقوم برنامج تحميل النظام بحل عمليات الاستقبال المؤجلة. لا يقوم خط enrun-time بحل أو اعادة رد المراجع الى عمليات الاستقبال المؤجلة.

بالنسبة لعمليات ارسال الرموز التي لم يتم استقبالها ، يتم استخدام القواعد التالية.

  • اذا كان الرمز يحتوي على الخاصية المميزة كشف ، سيتم عرضه في جدول رموز وحدة التحميل ، ولكن لم يتم تحديد شارة L_EXPORT في ادخال جدول الرموز. تجاهل خط الوقت الذي يتم تشغيله بتجاهل مثل هذه الرموز.
  • اذا تم ارسال رمز مع خاصية مميزة صريحة ، أو مع وجود وضوح واضح ، سيتم استخدام الخاصية المميزة أو الرؤية الواضحة.
  • اذا كان الرمز عبارة عن رمز BSS ، سيتم ارساله مع الخاصية المميزة غير متزامن .
  • خلاف ذلك ، يتم ارسال الرمز مع الخاصية المميزة الشاملة ، كما هو محدد بواسطة اختيار رمزيأو غير متزامنأو ylyommomic- . الخاصية المميزة الشاملة المفترضة هي ylyommomic-.

مناظرات العنوان

يقوم الأمر ld بتكوين خرائط العناوين ، وعرض الشكل العام للرموز في ملف عنصر المخرجات. اذا قمت باستخدام الاختيار خريطة (أو ر) ، سيتم عرض الرموز التي لم يتم حلها والرموز التي تم استقبالها أولا ، متبوعة بالرموز في كل قسم في ترتيب العنوان. اذا قمت باستخدام الاختيار استدعاءات (أو جيم) ، فان كل رمز يتم عرضه يتم اتباعه بكشف بالمراجع من هذا الرمز الى رموز أخرى. اذا قمت باستخدام الاختيار xref (أو X) ، فان كل رمز يتم عرضه متبوعة بكشف بالمراجع لهذا الرمز من الرموز الأخرى. اذا قمت باستخدام الاختيار smpأو استدعاءاتأو sxref ، ستحتوي مناظرة العنوان على نفس المعلومات التي يتم عرضها بواسطة اختيار خريطةأو استدعاءاتأو xref ، على التوالي ، ولكن يتم عرض الرموز بترتيب أبجدي.

الرموز الداخلية ، مع فئة التخزين C_HIDEXT ، يتم طباعتها مع الحروف<و >(الأقواس المعقوفة) المحيطة باسم الرمز. أسماء الرموز الخارجية ، مع فئة التخزين C_EXT ، يتم طباعتها بدون أقواس الزاوية ، وتلك التي لها فئة تخزين الى C_WEAKEXT ، يتم طباعتها مع الحروف{و}المحيطة باسم الرمز.

تتضمن المعلومات المعروضة عن كل رمز symbol :

  • اشارة الى ما اذا كان الرمز تم استقباله أو ارساله أو نقطة الادخال. يتم استخدام العلامة * (العلامة النجمية) لتعليم نقطة الادخال ، I يتم استخدامها لتعليم الرموز التي تم استقبالها ، ويتم استخدام هاء لتعليم الرموز المرسلة.
  • عنوانه (فيما عدا الرموز التي يتم استقبالها)
  • الطول والمحاذاة (بالنسبة لرموز CSECT و BSS)
  • فئة مناظرة-التخزين
  • نوع الرمز
  • رقم الرمز (يستخدم للتمييز بين الرموز لنفس الاسم)
  • اسم الرمز
  • noitamrofni elif tupnI

تم تعريف فئات تناظر التخزين وأنواع الرموز في /usr/include/sysys.h file. في خرائط العناوين ، يتم عرض آخر حرفين فقط ، فيما عدا أن فئة مناظرة التخزين XMC_TC0 يتم عرضها على أنها T0.

تعتمد معلومات ملف المدخلات على نوع ملف المدخلات. بالنسبة لملفات العنصر ، يتم عرض أسماء ملفات المصدر التي تم الحصول عليها من ادخالات جدول C_FILE. اذا كان العنصر من ملف تخزين ، سيتم عرض اسم ملف العنصر بالنسق التالي :

ArchiveFileName[ObjectName]

يتم عرض اسم عنصر مشترك بين { } (الأقواس). اذا كان قد تم تعريف عنصر مشترك بواسطة ملف استقبال ، سيتم عرض اسم ملف الاستقبال قبل اسم العنصر المشترك.

يكون لرموز الاستقبال نوع رمز خاص بها ، ولكنها تحتوي على معلومات مدخلات الملف الخاصة بها. يتم عرض الرموز الغير معرفة أيضا باستخدام نوع الرمز ER ، ولكن يتم ترك كل الأعمدة الأخرى ، فيما عدا رقم الرمز ، خالية.

تؤثر علامات -لا و -D (أو pp أو DD ) على العناوين التي تم طباعتها في خرائط العناوين هذه. بالنسبة لتصحيح الأخطاء على مستوى الجهاز ، سيكون من المفيد اختيار العنوان بحيث يتم عرض الرموز بنفس العناوين التي يتوافر لديها وقت التشغيل. بالنسبة لبرنامج 32-bit الذي لا يستخدم العناصر المشتركة التي تم تحميلها بشكل خاص ، يمكنك اختيار العناوين المناسبة من خلال تحديد-bpT:0x10000000و-bpD:0x20000000options. يتم تعريف هذه الاختيارات افتراضيا في /etc/xlC.cfg أو /etc/fl.cfg file.

متغيرات بيئة التشغيل

المتغيرات الخاصة ببيئة التشغيل التالية تؤثر على تنفيذ الأمر ld :

بند توصيف
LIBPATH اذا تم تعريف LIBPATH ، سيتم استخدام القيمة الخاصة بها على أنها معلومات مسار المكتبة المفترضة. خلاف ذلك ، تكون معلومات مسار المكتبة المفترضة هي /usr/lib:/lib. اذا لم يتم تحديد شارات -L ولم يتم تحديد اختيار -bibpath ، سيتم كتابة معلومات مسار المكتبة المفترضة في قسم التحميل الخاص بملف المخرجات. بصرف النظر عن أي اختيارات محددة ، لا يتم استخدام LIBPATH عند البحث عن المكتبات التي تم تحديدها من سطر الأمر.
TMPDIR اذا كان ملف المخرجات موجود بالفعل أو اذا كان موجودا على نظام ملفات عن بعد ، سيقوم الأمر ld بتكوين ملف مخرجات مؤقت. يتم تكوين ملف المخرجات المؤقت في الدليل المحدد بواسطة TMPDIR. اذا لم يتم تعريف TMPDIR ، سيتم تكوين ملف المخرجات المؤقت في الدليل /tmp اذا كان ملف المخرجات عن بعد ، أو في نفس الدليل كملف المخرجات الحالي.
OBJECT_MODE اذا لم يتم استخدام اختيار -b32 أو -b64 ، سيتم فحص متغير بيئة تشغيل OBJECT_MODE لتحديد نمط الربط. If the value of OBJECT_MODE is 32 or 64, 32-bit or 64-bit mode is used, respectively. اذا كانت القيمة هي 32_64 أو أي قيمة أخرى ، سيقوم الخط بطباعة رسالة خطأ والخروج مع كود نتيجة غير صفرية. خلاف ذلك ، يتم استخدام نمط 32-bit.

أمثلة

  1. لربط عدة ملفات عنصر واصدار ملف a.out ليتم تشغيله من خلال نظام التشغيل ، قم بادخال :
    ld /usr/lib/crt0.o pgm.o subs1.o subs2.o -lc
    و#-lc(حرف سفلي L) وصلات مكتبة libc.a . وهناك طريقة أسهل لتحقيق ذلك هي استخدامccأمر (برنامج الترجمة) لربط الملفات كما يلي :
    cc  pgm.o  subs1.o  subs2.o
  2. لتحديد اسم ملف المخرجات ، قم بادخال :
    cc  -o pgm  pgm.o  subs1.o  subs2.o
    يؤدي ذلك الى تكوين المخرجات في الملفpgm.
  3. الى اعادة الربطpgmاذا كان قد تم تغيير ملف العنصر subs1.o ، قم بادخال :
    cc -o pgm subs1.o pgm
    يتم قراءة CSECs التي جاءت في الأصل من ملفات العنصر pgm.o و subs2.o من الملف pgp. يمكن أن تقوم هذه التقنية بتسريع عملية الربط اذا كان البرنامج يتكون من ملفات مدخلات متعددة ، ولكن يتم تغيير بعض الملفات فقط في نفس الوقت.
  4. للاتصال مع subroutines للمكتبة ، أدخل :
    cc  pgm.o  subs1.o  subs2.o  mylib.a  -ltools
    يقوم هذا بربط وحدات برامج العنصرpgm.o,subs1.o، وsubs2.o، البرامج الفرعية منmylib.aأرشيف ، والروتين الفرعي من المكتبة المحددة بواسطة شارة -l (Lesaccase letter L). (وهذا يعني /usr/lib/libtools.a file).
  5. لتكوين عنصر مشترك ، أدخل :
    ld -o shrsub.o subs1.o subs2.o -bE:shrsub.exp -bM:SRE -lc
    هذا يقوم بربط ملفات العنصر subs1.oو subs2.oو subroutines من المكتبة libc.a المحددة بواسطة شارة -lc . فهي تقوم بتصدير الرموز المحددة في الملف .exsub.exp وتقوم بتخزين العنصر المشترك الذي تم ربطه في الملف dorsub.o و#-bM:SREيقوم بتحديد شارة العنصر المشترك في ملف العنصر المتصل.
  6. للاتصال بالعنصر المشتركshrsub.oتم تكوينه من قبل ، أدخل :
    cc -o pgm pgm.o shrsub.o -L '.'
    يقوم هذا بربط ملف العنصر pgm.o بالرموز التي تم تصديرهاshrsub.o. يتم تخزين المخرجات المتصلة في ملف العنصرpgm.-L '.'يقوم باضافة الدليل الحالي الى مسار بحث المكتبة الذي يستخدمه برنامج تحميل النظام لايجادshrsub.oعنصر مشترك. في وقت التشغيل ، يتم تحميل هذا البرنامج فقط اذا كان يتم تشغيله من دليل يحتوي على نسخة منshrsub.oالملف أو اذا كانshrsub.oتم ايجاد الملف في /usr/lib standard library directory. للسماح للبرنامج بأن يتم تشغيله من أي مكان ، استخدم الاختيار -L `pwd`.

    يمكن مشاهدة كشف الأدلة التي تم بحثها بواسطة وحدة تحميل النظام باستخدام الأمر تفريغ .

  7. لربط أحد البرامج باستخدام مكتبة libc.a على أنها مكتبة غير-مشتركة ، أدخل :
    cc -o pgm pgm.o -bnso -bI:/lib/syscalls.exp
    هذه الوصلاتpgm.oمع مكتبات الدعم اللازمة وأسماء ملف المخرجاتpgm. لأجلccالأمر ، مكتبة libc.a هي مكتبة دعم ضرورية وعادة ما يتم تعديلها-يتم تحريرها لبرنامج المستخدم كمكتبة مشتركة. في هذا المثال ،-bnsoيقوم الاختيار بتوجيه أمر ld للاتصال بمكتبة libc.a على أنها مكتبة غير-مشتركة ، ومع-bI:/lib/syscalls.expيقوم بتوجيه أمر ld لاستقبال وظائف استدعاء النظام التي تم تضمينها بالفعل في Kernel أو /usr/lib/boot/unix file. عندما يتم الاتصال مع-bnsoالاختيار ، أي الرموز التي تم استقبالها وارسالها (التي تم تمريرها من خلال) في عنصر مشترك يجب أن يتم استقبالها بطريقة صريحة ، كما يتم تنفيذه بواسطة-bI:/lib/syscalls.expاختيار في هذا المثال.
    ملاحظة : في أي وقت /usr/lib/libc.a is linked non-shared, the flag -bI : /lib/syscalls.exp must be used. يمكن أيضا أن يتم ربط التطبيق مرة أخرى عند تركيب اصدار تم تعديله لنظام التشغيل. أي تطبيق متصل بشكل ثابت هو لا binary portable من أي تصحيحات fix أو release level لأي تصحيحات أخرى أو مستوى اصدار آخر.
  8. لاتاحة كل الخواص المميزة للعشوائية ، قم بادخال :
    -baslr

    اذا كانت عمليات النقل لقسم النص موجودة ، لا تسمح بعملية عشوائية للنص والبيانات.

  9. لاتاحة العشوائية للنص والمجموعة فقط ، قم بادخال :
    -baslr:ts 

ملفات

بند توصيف
/usr/bin/ld يحتوي على الأمر ld .
/الاستخدام/lib/lib * .a يحدد المكتبات المستخدمة لربط البرامج.
a.out يحدد اسم ملف المخرجات المفترض.