أمر 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.
جاري التشغيل
يقوم الأمر ld بتشغيل كل ملفات المدخلات بنفس الطريقة ، سواء كانت ملفات تخزين أم لا. وهي تتضمن جداول الرموز لكل العناصر ، وتقوم بمحو تعريفات الرموز فقط التي تقوم بنسخ الرموز الموجودة. على خلاف بعض النسخ الأخرى من أمر ld ، فانك لا تحتاج الى أن تقوم بطلب ملفات التخزين بحيث تكون المراجع سابقة للتعريفات. بالاضافة الى ذلك ، لا تحتاج الى أن تقوم بعرض ملف تخزين أكثر من مرة في سطر الأمر.
لا يؤثر ترتيب شارات أمر ld على الطريقة التي يتم بها تشغيلهم ، فيما عدا العلامات التي يتم استخدامها مع ملفات عنصر المدخلات والمكتبات وملفات الاستقبال. هذه الشارات هي : -L، -f، -l (حروف سفلية L) ، -bkeepfile، -bI (حروف علوية i). يتم تشغيل العلامات بالترتيب التالي :
- تقوم شارة -L باضافة دليل الى كشف أدلة البحث لايجاد المكتبات التي تم تحديدها بواسطة شارة -l (حروف سفلية L). يتم البحث في الأدلة بالترتيب المحدد. سيتم تشغيل كل شارات -L قبل تشغيل أي من شارات -l .
- يقوم الأمر ld بتشغيل معاملات ملف InputFile ، والملفات التي تم تحديدها بواسطة شارة -f والمكتبات المحددة بواسطة شارة -l (حروف سفلية L) بالترتيب المحدد.
- يقوم الأمر ld بتشغيل ملفات الاستقبال المحددة بواسطة شارة -bI (حروف علوية i) في الترتيب المحدد بعد تشغيل كل ملفات العناصر والمكتبات الأخرى. يمكنك تحديد ملف استقبال كملف مدخلات بدون شارة -bI اذا كان ذلك ضروري لتشغيل الملف قبل تشغيل بعض ملفات العنصر. في هذه الحالة ، يجب أن يبدأ السطر الأول من ملف الاستقبال بالرموز #! (# ، علامة التعجب) ، ويتم تشغيل ملف الاستقبال مع ملفات مدخلات أخرى كما هو موضح في الخطوة 2.
- يقوم الاختيار -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
علامات تشير الى أن الأمر ld لا يدعم النتيجة في رسالة خطأ. بعد أن يتم تشخيص كل الشارات التي لا يتم دعمها ، سيتم ايقاف الأمر ld بدون مزيد من التشغيل.
شارات
يتوافق الأمر ld مع الخطوط الارشادية الى XPG Utility Syntax ، فيما عدا المتغير المستقل—ينطبق فقط على المعامل التالي ، وليس الى المعاملات المتبقية على سطر الأمر. على سبيل المثال ، في سطر الأمر :
ld -- -s -v
و#-sيتم التعامل معه على أنه اسم ملف واسم-vيتم معاملته على أنه علامة. أن يكون لديك-vتعامل على أنه اسم ملف ، حدد :
ld -- -s -- -v
| بند | توصيف |
|---|---|
| -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-بت ، ارجع الى |
| -لاالعدد | لتحديد عنوان البدء لجزء النص الخاص بملف المخرجات الى العدد. القيمة المفترضة هي 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)
- في الكشف التالي من اختيارات binder ، فان اثنين من أسماء الاختيارات مفصولة بالكلمة أو هي مترادفة.
- يشير كود الملف الى اسم المسار. يمكنك استخدام اسم مسار نسبي أو اسم مسار كامل.
- بالنسبة للاختيار غير القابل للتكرار الذي يتم اتباعه بواسطة المتغير المستقل ، يمكنك تنفي الاختيار باستخدام اختيار معامل عبارة عن لا شيء. هذا هو ، قم بتحديد الاختيار والنقطتين فقط.
- اذا قمت بتحديد اختيارات متعارضة ، سيكون لآخر اختيارات الأولوية.
| بند | توصيف |
|---|---|
| 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 كل الخصائص المميزة للعشب عند استخدام هذا الاختيار فقط ، و اذا كان اختيار 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 الذي يقوم بتخزين العناصر للبحث عند تكوين المعلومات التي تم حفظها. القيم المتاحة هي:
اختيار nnn الفرعي يحدد أولوية وحدة برامج المخرجات. يتم استخدام هذه الأولوية للتحكم في الترتيب الذي يتم به بدء تشغيل وحدات البرامج ، في حالة قيام برنامج بتحميل وحدات برامج متعددة في نفس الوقت. (يتم تجاهل الأولوية اذا كان ملف المخرجات عبارة عن برنامج وليس عنصر مشترك.) يمكن أن تكون الأولوية في المدى من -231 الى 231-1. الأولوية المفترضة هي 0. القيم الموجودة في المدى من -231 الى -231+ 1023 يتم الاحتفاظ بها لبدء تشغيل C++ runtime. يقوم الاختيار الفرعي ترتيب بتحديد الترتيب الذي يتم من خلاله استدعاء وظائف وحدة التكوين أو وظائف التدمير ، لكل الوظائف التي لها نفس الأولوية. القيم المتاحة هي:
يمكنك تحديد هذا الاختيار عدة مرات ، ولكن سيتم استخدام الاختيار الفرعي الأخير الذي تقوم بتحديده. لا يؤثر الاختيار الفرعي غير المحدد على القيمة الحالية أو القيمة المفترضة. على سبيل المثال ، -bcdtors:csect:20:s -bcdors : ::r هو نفسه -bcdtors:csect::20:r. الاختيار المفترض هو -وحدات برامج bnocdors. اذا تم تحديد -bcdors ، يكون هذا مماثلا الى -bcdtors:all:0:s. ملحوظة:
|
| 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 ، تكون القيمة القصوى المسموح بها بواسطة النظام هي بالنسبة لبرامج 64-bit يقوم الاختيار maxdata باتاحة الحد الأقصى المضمون لحجم البيانات الخاصة بتجميع بيانات البرامج. يمكن تحديد أي قيمة ولكن مساحة البيانات لا يمكن أن تمتد للماضي |
| حجم البيانات :pize | يتم طلب حجم الصفحة pize بالبايت للبيانات. يمكن تحديد القيمة على أنها رقم عشري أو سداسي عشري أو ثماني. تكون محددات الرقم هي نفسها لغة برمجة C. بالاضافة الى ذلك ، يمكن تحديد حجم الصفحة على أنه رقم متبوعة بلاحقة ذات-حرف واحد :
-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 ، والتي سيتم تشغيلها كما يلي :
|
| 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 أو أكبر ، فقد لا يكون ملف المخرجات قابل للتنفيذ اذا تم تكوينه على الاطلاق. القيم المرتجعة هي :
|
| أنا :كود الملف أو استقبال :كود الملف | (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 عند الغاء تحميل وحدة البرامج. ملحوظة:
|
| 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 ، ولكن يجب أن يتم تحديده بأي من القيم التالية :
|
| مناظرة :كود الملف أو 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 في ملف المخرجات بنفس الترتيب الذي تم به تحديد ملفات العنصر وملفات المكتبة على سطر الأمر ، فيما عدا ما يلي :
اذا تم تحديد كلا من اختيارات 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 المفضلة. |
| غير هادئ | لكتابة الأمر الفرعي لكل من وحدات الربط والنتائج الخاصة به للمخرجات القياسية. الاختيار المفترض هو اختيار هدوء . |
| 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 :كود الملف | رموز الخرائط التي يتم عرضها في كود الملف في الترتيب المحدد. الرموز التي يتم عرضها في الملف يتم مناظرتها قبل رموز أخرى لنفس فئة مناظرة التخزين. أسماء الوظائف التي تم تحديدها في الملف يجب أن تبدأ بنقطة لأن اسم الوظيفة بدون نقطة يشير الى موصف وظيفة. |
| ترتيب :المواصفات | يقوم بالتحكم في الترتيب الذي يتم به تحديد بعض الرموز في ملف المخرجات. يمكن أن تكون المحددات هي :
|
| pD :الأصل | يحدد الأصل على أنه عنوان البايت الأول الخاص بصفحة الملف التي تحتوي على بداية قسم البيانات. على سبيل المثال ، اذا كان قسم البيانات يبدأ عند موضع البدء0x22A0في ملف العنصر ، وpD:0x20000000يتم تحديده ، ويتم تخصيص عنوان البايت الأول لقسم البيانات0x200002A0. هذا يفترض حجم صفحة 4096 (0x1000) بايت. ملاحظة : اذا تم تحديد كل من تعليم -bpD و -D ، فان الشارة الأخيرة تكون لها الأسبقية.
|
اذا كنت ترغب في الغاء مسار plug-in المحدد سابقا ، لا تقم بتحديد متغير مسار ، هذا هو ، اذا كان ملف المدخلات هو ملف bitcode أو ملف تخزين يحتوي على ملف bitcode file ، ولم يتم تحديد مسار plug-in ، سيفشل أمر ld . |
|
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 من خلال تكوين ملف استقبال باستخدام الخطوط التالية :
واضافة ملف الاستقبال كعنصر الى ملف التخزين. يمكنك أيضا تحديد التحميل الآلي لنص الطرف لملف التخزين .o باستخدام اختيار -bautoload :يمكنك تحديد عناصر تخزين اضافية باستخدام -bautoloadsاضافية.اذا كان السطر الأول من ملف الاستقبال يبدأ باستخدام |
| 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 عبارة عن سلاسل بيانات أطول من ثمانية حروف. يكون لكل مجموعة حروف فرعية في جدول الرموز ازاحة خاصة بها في قسم تصحيح الأخطاء. القيم التالية تعتبر صحيحة بالنسبة الى المستوى:
|
| المماخبث | يؤدي الى كتابة قسم ازالة الخطأ الى ملف مخرجات بديل مع اللاحقة .طعنة. |
| Skackpsize :pize | يتم طلب حجم صفحة pize بالبايت لعملية تجميع سلسلة العمليات الرئيسية. يمكن تحديد القيمة على أنها رقم عشري أو سداسي عشري أو ثماني. تكون محددات الرقم هي نفسها لغة برمجة C. بالاضافة الى ذلك ، يمكن تحديد حجم الصفحة على أنه رقم متبوعة بلاحقة ذات-حرف واحد :
-b stackpsize:16kأو-b stackpsize:0x4000سيقوم بطلب 0x4000 لتشغيل حزمة سلسلة العمليات الرئيسية وتحديدF_VARPGفي نص رأس XCOFF بت. |
| استاتيكي | يؤدي الى أن يقوم الخط بتشغيل العناصر المشتركة المتتابعة في نمط ثابت. في النمط الاستاتيكي ، يتم ربط العناصر المشتركة بشكل ثابت في ملف المخرجات. |
| svr4 | يقوم هذا الاختيار بتغيير المعاني الخاصة ببعض الاختيارات الأخرى الموجودة على سطر الأمر والتصرف القياسي للخط. ولها التأثير التالي على الخط :
|
| sxref :كود الملف | لكتابة مناظرة العنوان الخاصة بملف العنصر الى كود الملف. الرموز هي مرتبة أبجديا. بالنسبة لكل رمز يتم عرضه في الخريطة ، سيتم عرض مراجع لرمز من رموز أخرى. كقيمة مفترضة ، لا يتم تكوين أي ملف. للحصول على مزيد من المعلومات عن اختيار sxref ، ارجع الى خرائط العناوين.على ما يلي : |
| رمزي | يتم تخصيص الخاصية المميزة رمزي لمعظم الرموز التي تم تصديرها بدون خاصية مميزة صريحة. للحصول على مزيد من المعلومات ، ارجع الى الخصائص المميزة للرموز التي تم تصديرهاالتالي. هذا هو المفترض عند استخدام اختيار svr4 ؛ خلاف ذلك ، يكون الاختيار المفترض هو اختيار رمزي- . |
| نص | مثل اختيار يا أخي . |
| حجم النص :pize | يتم طلب حجم الصفحة pize بالبايت للنص. يمكن تحديد القيمة على أنها رقم عشري أو سداسي عشري أو ثماني. تكون محددات الرقم هي نفسها لغة برمجة C. بالاضافة الى ذلك ، يمكن تحديد حجم الصفحة على أنه رقم متبوعة بلاحقة ذات-حرف واحد :
-b textpsize:16kأو-b textpsize:0x4000سيقوم بطلب 0x4000 للنص وتحديدF_VARPGفي نص رأس XCOFF بت. |
| اعادة تسمية | يحدد أنه يجب التحقق من binder للنسخ العامة. تقوم وحدة الربط بالتحقق من أي رمز للنموذج __tfNNxxx_الاسم وتقوم باعادة تسمية الرمز الى الاسم. الاختيار المفترض هو -bnotmplemaname. ملاحظة : هذا الاختيار مطلوب فقط لنمط 32-bit. يتم تجاهل هذا الاختيار عند تكوين عناصر 64-bit.
|
| خطأ مطبعي | يقوم بالتحقق من نوع معامل-نوع المعامل بين الاستدعاءات الوظيفية الخارجية. يمكن أن يتم تضمين معلومات التحقق من نوع المعامل في ملفات العنصر بواسطة وحدات التجميع ووحدات التجميع. هذا هو المفترض . للحصول على مزيد من المعلومات عن عملية التحقق من النوع ، ارجع الى |
| اضعف | يحدد أنه يتم البحث عن الرموز الضعيفة لأول مرة في ملفات العنصر التي يتم الاشارة اليها بها. اذا لم يتم ايجاد الرموز هناك ، يتم استئناف أمر البحث العادي. |
| x | لجعل ملف المخرجات قابل للتنفيذ ، اذا لم يكن هناك أي أخطاء. هذا هو الاختيار المفترض. |
| X أو xref :كود الملف | لكتابة مناظرة العنوان الخاصة بملف العنصر الى كود الملف. يتم فرز الرموز حسب القسم وبعد ذلك عن طريق العنوان. بالنسبة لكل رمز يتم عرضه في الخريطة ، سيتم عرض مراجع لرمز من رموز أخرى. كقيمة مفترضة ، لا يتم تكوين أي ملف. للتعرف على المزيد عن اختيار xref ، ارجع الى مناظرات العنوانالتالي. |
ربط وقت التشغيل
افتراضيا ، يتم ربط المراجع للرموز في العناصر المشتركة بوقت الوصلة. وهذا يعني أن وحدة برامج المخرجات تقوم بارفاق رمز تم استقباله مع تعريف في عنصر مشترك معين. في وقت التحميل ، يتم استخدام التعريف الموجود في العنصر المشترك المحدد حتى اذا قامت عناصر مشتركة أخرى بارسال نفس الرمز.
يمكنك أن تقوم باستخدام البرنامج الخاص بك لاستخدام ener-time enker ، مما يسمح لبعض الرموز بأن تكون مرتدة في وقت التحميل. لتكوين برنامج يقوم باستخدام خط تشغيل-وقت التشغيل ، قم بربط البرنامج بالاختيار -brtl . وتؤثر الطريقة التي ترتبط بها الوحدات المشتركة في الربط بين إعادة استخدام الرموز.
يمكنك بناء عناصر مشتركة تم اتاحتها لعملية ربط وقت التشغيل باستخدام شارة -G . يمكنك اتاحة عملية ربط وقت التشغيل بالكامل للعناصر المشتركة الموجودة عن طريق اعادة ربطهم بأمر rtl_enable ، طالما أنهم لم يتم تجريدهم.
الرمز الرؤية
يمكن تعليم الرموز الشاملة والضعيفة في ملف عنصر المدخلات بامكانية الرؤية. تم تعريف أربعة من أحاسيس الرموز.
| رمز | امكانية الرؤية |
|---|---|
| داخلي | لا يتم ارسال الرمز. يجب ألا يتم اتاحة عنوان الرمز للبرامج الأخرى أو العناصر المشتركة ، ولكن لا يقوم الخط بالتحقق من ذلك. |
| اخفاء | لم يتم ارسال الرمز |
| محمي | يتم تصدير الرمز ولكن لا يمكن أن يتم استعافيته (أو ما قبله) ، حتى اذا كان يتم استخدام وصلة وقت التشغيل. |
| تم التصدير | يتم ارسال الرمز مع الخاصية المميزة للتصدير الشاملة. |
يمكن أن يتم تحديد امكانية ظهور الرمز في ملف مصدر وحدة التجميع. وبعض مجمعي البيانات يؤيدون الرؤية كذلك. ارجع الى وثيقة برنامج الترجمة الخاصة بك للتعرف على التفاصيل.
يمكن أيضا استخدام ملفات الارسال لتحديد امكانية الرؤية لرمز 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. |
أمثلة
- لربط عدة ملفات عنصر واصدار ملف a.out ليتم تشغيله من خلال نظام التشغيل ، قم بادخال :
و#-lc(حرف سفلي L) وصلات مكتبة libc.a . وهناك طريقة أسهل لتحقيق ذلك هي استخدامccأمر (برنامج الترجمة) لربط الملفات كما يلي :ld /usr/lib/crt0.o pgm.o subs1.o subs2.o -lccc pgm.o subs1.o subs2.o - لتحديد اسم ملف المخرجات ، قم بادخال :
يؤدي ذلك الى تكوين المخرجات في الملفpgm.cc -o pgm pgm.o subs1.o subs2.o - الى اعادة الربطpgmاذا كان قد تم تغيير ملف العنصر subs1.o ، قم بادخال :
يتم قراءة CSECs التي جاءت في الأصل من ملفات العنصر pgm.o و subs2.o من الملف pgp. يمكن أن تقوم هذه التقنية بتسريع عملية الربط اذا كان البرنامج يتكون من ملفات مدخلات متعددة ، ولكن يتم تغيير بعض الملفات فقط في نفس الوقت.cc -o pgm subs1.o pgm - للاتصال مع subroutines للمكتبة ، أدخل :
يقوم هذا بربط وحدات برامج العنصرpgm.o,subs1.o، وsubs2.o، البرامج الفرعية منmylib.aأرشيف ، والروتين الفرعي من المكتبة المحددة بواسطة شارة -l (Lesaccase letter L). (وهذا يعني /usr/lib/libtools.a file).cc pgm.o subs1.o subs2.o mylib.a -ltools - لتكوين عنصر مشترك ، أدخل :
هذا يقوم بربط ملفات العنصر subs1.oو subs2.oو subroutines من المكتبة libc.a المحددة بواسطة شارة -lc . فهي تقوم بتصدير الرموز المحددة في الملف .exsub.exp وتقوم بتخزين العنصر المشترك الذي تم ربطه في الملف dorsub.o و#-bM:SREيقوم بتحديد شارة العنصر المشترك في ملف العنصر المتصل.ld -o shrsub.o subs1.o subs2.o -bE:shrsub.exp -bM:SRE -lc - للاتصال بالعنصر المشتركshrsub.oتم تكوينه من قبل ، أدخل :
يقوم هذا بربط ملف العنصر pgm.o بالرموز التي تم تصديرهاshrsub.o. يتم تخزين المخرجات المتصلة في ملف العنصرpgm.-L '.'يقوم باضافة الدليل الحالي الى مسار بحث المكتبة الذي يستخدمه برنامج تحميل النظام لايجادshrsub.oعنصر مشترك. في وقت التشغيل ، يتم تحميل هذا البرنامج فقط اذا كان يتم تشغيله من دليل يحتوي على نسخة منshrsub.oالملف أو اذا كانshrsub.oتم ايجاد الملف في /usr/lib standard library directory. للسماح للبرنامج بأن يتم تشغيله من أي مكان ، استخدم الاختيار -L `pwd`.cc -o pgm pgm.o shrsub.o -L '.'يمكن مشاهدة كشف الأدلة التي تم بحثها بواسطة وحدة تحميل النظام باستخدام الأمر تفريغ .
- لربط أحد البرامج باستخدام مكتبة libc.a على أنها مكتبة غير-مشتركة ، أدخل :
هذه الوصلات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اختيار في هذا المثال.cc -o pgm pgm.o -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 لأي تصحيحات أخرى أو مستوى اصدار آخر. - لاتاحة كل الخواص المميزة للعشوائية ، قم بادخال :
-baslrاذا كانت عمليات النقل لقسم النص موجودة ، لا تسمح بعملية عشوائية للنص والبيانات.
- لاتاحة العشوائية للنص والمجموعة فقط ، قم بادخال :
-baslr:ts
ملفات
| بند | توصيف |
|---|---|
| /usr/bin/ld | يحتوي على الأمر ld . |
| /الاستخدام/lib/lib * .a | يحدد المكتبات المستخدمة لربط البرامج. |
| a.out | يحدد اسم ملف المخرجات المفترض. |