i686-linux-gnu-ld - متصل بالإنترنت في السحابة

هذا هو الأمر i686-linux-gnu-ld الذي يمكن تشغيله في مزود الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


LD - رابط جنو

موجز


لد [الخيارات] objfile

الوصف


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

ld يقبل ملفات Linker Command Language المكتوبة بمجموعة شاملة من
بناء جملة لغة أمر محرر الارتباط الخاص بـ AT&T، لتوفير صريح و
السيطرة الكاملة على عملية الربط.

لا تصف صفحة الدليل هذه لغة الأمر ؛ انظر ال ld دخول
في "المعلومات" للحصول على التفاصيل الكاملة حول لغة الأوامر والجوانب الأخرى
رابط جنو.

هذا الإصدار من ld يستخدم مكتبات BFD للأغراض العامة للعمل عليها
ملفات الكائن. هذا يسمح ld لقراءة ملفات الكائنات ودمجها وكتابتها
في العديد من التنسيقات المختلفة - على سبيل المثال ، COFF أو "a.out". مختلف
يمكن ربط التنسيقات معًا لإنتاج أي نوع متاح من الكائنات
ملف.

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

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

OPTIONS


يدعم الرابط عددًا كبيرًا من خيارات سطر الأوامر ، ولكن في الواقع
ممارسة يتم استخدام القليل منها في أي سياق معين. على سبيل المثال،
كثرة استخدام ld هو ربط ملفات كائن Unix القياسية على ملف
معيار، نظام يونكس المدعوم. على مثل هذا النظام، لربط الملف
"مرحبا.أو":

أنا أفعل /lib/crt0.o hello.o -lc

هذا يقول ld لإنتاج ملف يسمى الناتج نتيجة الربط
الملف "/lib/crt0.o" بـ "hello.o" والمكتبة "libc.a" ، والتي
سيأتي من أدلة البحث القياسية. (انظر مناقشة
ال -l الخيار أدناه.)

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

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

عادة ما يتم استدعاء الرابط مع ملف كائن واحد على الأقل ، لكنك
يمكن تحديد أشكال أخرى من ملفات الإدخال الثنائية باستخدام -l, -R، و
لغة أوامر البرنامج النصي. لو لا ملفات الإدخال الثنائية هي على الإطلاق
المحدد ، لا ينتج الرابط أي إخراج ، ويصدر ملف
الرسالة لا إدخال ملفات.

إذا لم يتمكن الرابط من التعرف على تنسيق ملف الكائن ، فسيتم ذلك
افترض أنه نص رابط. نص محدد بهذه الطريقة
يقوي البرنامج النصي للرابط الرئيسي المستخدم للارتباط (إما الافتراضي
رابط البرنامج النصي أو المحدد باستخدام -T). تسمح هذه الميزة
الرابط الذي سيتم ربطه بملف يبدو أنه كائن أو
أرشيف، ولكنه في الواقع يحدد فقط بعض قيم الرموز أو الاستخدامات
"INPUT" أو "GROUP" لتحميل كائنات أخرى. تحديد البرنامج النصي في هذا
الطريقة تزيد فقط من البرنامج النصي للرابط الرئيسي ، مع الأوامر الإضافية
يتم وضعها بعد النص الرئيسي؛ استخدم ال -T خيار لاستبدال الافتراضي
الرابط النصي بالكامل، ولكن لاحظ تأثير الأمر "INSERT".

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

للخيارات التي تكون أسماؤها متعددة الأحرف ، إما شرطة واحدة أو اثنتين
يمكن أن يسبق اسم الخيار؛ على سبيل المثال، -رمز التتبع و
- رمز التتبع متكافئة. ملاحظة --- هناك استثناء واحد لهذا
قاعدة. خيارات الأحرف المتعددة التي تبدأ بحرف "o" صغير
لا يسبقه إلا شرطتان. هذا لتقليل الالتباس مع
-o خيار. على سبيل المثال -وماجيك يعيّن اسم ملف الإخراج إلى سحر
في حين --أوماجيك يضبط علامة NMAGIC على الإخراج.

يجب فصل وسائط الخيارات متعددة الأحرف عن تنسيق
اسم الخيار بعلامة يساوي ، أو يتم إعطاؤه كوسيطات منفصلة
مباشرة بعد الخيار الذي يتطلب منهم. على سبيل المثال،
- رمز التتبع فو و - رمز التتبع = foo متكافئة. فريد
يتم قبول اختصارات أسماء الخيارات متعددة الأحرف.

ملاحظة --- إذا تم استدعاء الرابط بشكل غير مباشر ، عبر برنامج تشغيل مترجم
(على سبيل المثال دول مجلس التعاون الخليجي) ثم يجب أن تكون مسبوقة بجميع خيارات سطر أوامر الرابط
by -Wl ، (أو ما هو مناسب لبرنامج تشغيل المترجم المعين)
مثله:

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

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

gcc foo.o bar.o -Wl، -eENTRY -Wl، -Map = خريطة

يوجد هنا جدول بمفاتيح تبديل سطر الأوامر العامة المقبولة من قبل ملف
رابط جنو:

@ملف
قراءة خيارات سطر الأوامر من ملف. تم إدراج الخيارات المقروءة
بدلاً من @ الأصليملف اختيار. إذا ملف غير موجود ، أو
لا يمكن قراءتها ، فسيتم التعامل مع الخيار حرفيا ، وليس
إزالة.

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

-a الكلمة
هذا الخيار مدعوم للتوافق مع HP / UX. ال الكلمة
يجب أن تكون الحجة واحدة من السلاسل أرشيف, شاركت الطرق أو الافتراضي.
- ارشيفي يعادل وظيفيًا - ثابت، واثنين آخرين
الكلمات الرئيسية معادلة وظيفيًا لـ -ديناميكية. هذا الخيار قد
يمكن استخدامها أي عدد من المرات.

--تدقيق مراجعة الحسابات
يضيف مراجعة الحسابات إلى إدخال "DT_AUDIT" للقسم الديناميكي.
مراجعة الحسابات لم يتم التحقق من وجوده ، ولن يستخدم امتداد
DT_SONAME المحدد في المكتبة. إذا تم تحديده عدة مرات
سيحتوي "DT_AUDIT" على قائمة مفصولة بنقطتين لواجهات التدقيق
ليستخدم. إذا عثر الرابط على كائن به إدخال تدقيق أثناء
البحث عن المكتبات المشتركة، فإنه سيتم إضافة المقابلة
إدخال "DT_DEPAUDIT" في ملف الإخراج. هذا الخيار فقط
مفيد على منصات ELF التي تدعم واجهة تدقيق rtld.

-A هندسة معمارية
- العمارة =هندسة معمارية
في الإصدار الحالي من ld، هذا الخيار مفيد فقط لـ
عائلة معمارية Intel 960. في هذا ld التكوين ، و
هندسة معمارية تحدد الحجة العمارة المعينة في
960 عائلة ، مما يتيح بعض الضمانات وتعديل الأرشيف-
مسار البحث في المكتبة.

الإصدارات المستقبلية من ld قد يدعم وظائف مماثلة للآخرين
عائلات العمارة.

-b نمط الإدخال
- تنسيق =نمط الإدخال
ld قد يتم تكوينه لدعم أكثر من نوع واحد من ملفات الكائن.
إذا كان لديك ld تم تكوينه بهذه الطريقة ، يمكنك استخدام ملف -b الخيار ل
حدد التنسيق الثنائي لملفات كائن الإدخال التي تلي ذلك
الخيار في سطر الأوامر. حتى عندما ld تم تكوينه لدعم
تنسيقات كائن بديلة ، فأنت لا تحتاج عادةً إلى تحديد ذلك ،
as ld يجب تكوينه ليتوقع كتنسيق إدخال افتراضي
التنسيق الأكثر شيوعًا على كل جهاز. نمط الإدخال عبارة عن سلسلة نصية ،
اسم تنسيق معين تدعمه مكتبات BFD.
(يمكنك سرد التنسيقات الثنائية المتاحة بامتداد com.objdump -i.)

قد ترغب في استخدام هذا الخيار إذا كنت تقوم بربط الملفات بامتداد
تنسيق ثنائي غير عادي. تستطيع ايضا استخذام -b لتبديل التنسيقات
بشكل صريح (عند ربط ملفات الكائنات ذات التنسيقات المختلفة)، بواسطة
بما فيها -b نمط الإدخال قبل كل مجموعة من ملفات الكائنات في ملف
شكل معين.

التنسيق الافتراضي مأخوذ من متغير البيئة
"جنوتارجيت".

يمكنك أيضًا تحديد تنسيق الإدخال من برنامج نصي ، باستخدام امتداد
الأمر "الهدف"؛

-c ملف أوامر التصوير بالرنين المغناطيسي
- النصي-mri =ملف أوامر التصوير بالرنين المغناطيسي
للتوافق مع الوصلات التي ينتجها التصوير بالرنين المغناطيسي ، ld يقبل البرنامج النصي
الملفات المكتوبة بلغة أوامر بديلة مقيدة ،
الموصوفة في قسم ملفات البرامج النصية المتوافقة مع التصوير بالرنين المغناطيسي في GNU ld
توثيق. تقديم ملفات البرنامج النصي للتصوير بالرنين المغناطيسي مع الخيار -c؛ استعمال
ال -T خيار لتشغيل البرامج النصية للرابط المكتوبة في الأغراض العامة
ld لغة البرمجة. لو ملف التصوير بالرنين المغناطيسي غير موجود، ld يبحث عن
في الدلائل المحددة من قبل أي -L خيارات.

-d
-تيار مستمر
-dp هذه الخيارات الثلاثة متكافئة. أشكال متعددة مدعومة
للتوافق مع الروابط الأخرى. يخصصون مساحة للمشترك
الرموز حتى إذا تم تحديد ملف إخراج قابل للنقل (مع -r).
الأمر النصي "FORCE_COMMON_ALLOCATION" له نفس التأثير.

--مدقق مراجعة الحسابات
-P مراجعة الحسابات
يضيف مراجعة الحسابات إلى إدخال "DT_DEPAUDIT" للقسم الديناميكي.
مراجعة الحسابات لم يتم التحقق من وجوده ، ولن يستخدم امتداد
DT_SONAME المحدد في المكتبة. إذا تم تحديده عدة مرات
سيتضمن "DT_DEPAUDIT" قائمة تدقيق مفصولة بنقطتين
واجهات للاستخدام. هذا الخيار مفيد فقط على منصات ELF
دعم واجهة rtld-Audit. يتم توفير الخيار -P لـ
توافق سولاريس.

-e دخول
- دخول =دخول
استعمل دخول كرمز واضح لبدء تنفيذ ملف
البرنامج ، بدلاً من نقطة الدخول الافتراضية. إذا لم يكن هناك
رمز اسمه دخول، سيحاول الرابط التحليل دخول كرقم
واستخدمه كعنوان إدخال (سيتم تفسير الرقم
في القاعدة 10؛ يمكنك استخدام الرائدة 0x للقاعدة 16 ، أو بادئة 0
للقاعدة 8).

--استثني الليبس ليب,ليب، ...
يحدد قائمة بمكتبات الأرشيف التي لا يجب استخدام الرموز منها
يتم تصديرها تلقائيًا. يمكن تحديد أسماء المكتبات بـ
الفواصل أو النقطتين. تحديد "--exclude-libs ALL" يستبعد الرموز
في جميع مكتبات الأرشيف من التصدير التلقائي. هذا الخيار هو
متاح فقط للمنفذ المستهدف i386 PE للرابط و
ELF استهدفت المنافذ. بالنسبة إلى i386 PE ، يتم سرد الرموز صراحةً في ملف
لا يزال يتم تصدير ملف .def، بغض النظر عن هذا الخيار. من أجل قزم
المنافذ المستهدفة، سيتم التعامل مع الرموز المتأثرة بهذا الخيار على أنها
مخفي.

--استثني الوحدات النمطية لـ implib وحدة,وحدة، ...
يحدد قائمة بملفات الكائنات أو أعضاء الأرشيف ، منها
لا ينبغي أن يتم تصدير الرموز تلقائيًا، ولكن يجب أن يتم تصديرها
تم نسخها بالجملة إلى مكتبة الاستيراد التي يتم إنشاؤها أثناء
وصلة. قد يتم تحديد أسماء الوحدات بفواصل أو نقطتين، و
يجب أن يتطابق تمامًا مع أسماء الملفات المستخدمة من قبل ld لفتح الملفات ل
أعضاء الأرشيف، هذا هو ببساطة اسم العضو، ولكن للكائن
يجب أن يتضمن الاسم المدرج أي مسار ويطابقه بدقة
يستخدم لتحديد ملف الإدخال في سطر أوامر الرابط. هذا
الخيار متاح فقط للمنفذ المستهدف i386 PE من
رابط. لا تزال الرموز المدرجة بشكل صريح في ملف .def موجودة
تصديرها، بغض النظر عن هذا الخيار.

-E
- ديناميكية التصدير
- لا للتصدير الديناميكي
عند إنشاء ملف قابل للتنفيذ مرتبط ديناميكيًا ، باستخدام امتداد -E خيار
أو ال - ديناميكية التصدير يؤدي الخيار إلى قيام الرابط بإضافة كافة الرموز
إلى جدول الرموز الديناميكي. جدول الرموز الديناميكي هو المجموعة
من الرموز التي يمكن رؤيتها من الكائنات الديناميكية في وقت التشغيل.

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

إذا كنت تستخدم "dlopen" لتحميل كائن ديناميكي يحتاج إلى الرجوع إليه
العودة إلى الرموز التي حددها البرنامج ، بدلاً من بعض الرموز الأخرى
كائن ديناميكي، فربما تحتاج إلى استخدام هذا الخيار عندما
ربط البرنامج نفسه.

يمكنك أيضًا استخدام القائمة الديناميكية للتحكم في الرموز التي يجب أن تكون
يضاف إلى جدول الرموز الديناميكية إذا كان تنسيق الإخراج يدعمه.
انظر وصف - قائمة ديناميكية.

لاحظ أن هذا الخيار خاص بمنافذ ELF المستهدفة. PE
الأهداف تدعم وظيفة مماثلة لتصدير جميع الرموز من DLL
أو EXE ؛ انظر وصف - تصدير جميع الرموز أدناه.

-EB ربط الأشياء الكبيرة. هذا يؤثر على تنسيق الإخراج الافتراضي.

-ال ربط الأشياء الصغيرة. هذا يؤثر على الإخراج الافتراضي
تنسيق.

-f الاسم
- مساعد =الاسم
عند إنشاء كائن مشترك ELF ، قم بتعيين DT_AUXILIARY الداخلي
الحقل إلى الاسم المحدد. هذا يخبر الرابط الديناميكي بذلك
يجب استخدام جدول الرموز الخاص بالكائن المشترك كملف
عامل التصفية الإضافي في جدول الرموز الخاص بالكائن المشترك الاسم.

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

يمكن تحديد هذا الخيار أكثر من مرة. DT_AUXILIARY
سيتم إنشاء الإدخالات بالترتيب الذي تظهر به على
سطر الأوامر.

-F الاسم
- عامل التصفية =الاسم
عند إنشاء كائن مشترك ELF ، قم بتعيين DT_FILTER الداخلي
الحقل إلى الاسم المحدد. هذا يخبر الرابط الديناميكي بذلك
يجب أن يكون جدول الرموز الخاص بالكائن المشترك الذي يتم إنشاؤه
يمكن استخدامه كمرشح في جدول الرموز الخاص بالكائن المشترك الاسم.

إذا قمت لاحقًا بربط برنامج مقابل كائن المرشح هذا ، فمتى
تقوم بتشغيل البرنامج ، سيرى الرابط الديناميكي DT_FILTER
مجال. سيقوم الرابط الديناميكي بحل الرموز وفقًا لـ
جدول الرموز لكائن المرشح كالمعتاد، لكنه سيفعل ذلك بالفعل
الارتباط بالتعريفات الموجودة في الكائن المشترك الاسم. وبالتالي فإن
يمكن استخدام كائن التصفية لتحديد مجموعة فرعية من الرموز
يقدمها الكائن الاسم.

استخدمت بعض الروابط القديمة ملف -F الخيار في جميع أنحاء التجميع
toolchain لتحديد تنسيق ملف الكائن لكل من الإدخال و
ملفات كائن الإخراج. يستخدم رابط جنو آليات أخرى لهذا الغرض
الغرض: -b, --صيغة, - تنسيق خيارات ، الأمر "الهدف"
في البرامج النصية للرابط ، ومتغير البيئة "GNUTARGET". ال
سوف يتجاهل رابط GNU ملف -F الخيار عند عدم إنشاء ELF
كائن مشترك.

- فيني =الاسم
عند إنشاء كائن ELF قابل للتنفيذ أو مشترك، اتصل بالاسم عندما
يتم إلغاء تحميل الكائن القابل للتنفيذ أو المشترك ، عن طريق تعيين DT_FINI إلى
عنوان الوظيفة. بشكل افتراضي ، يستخدم الرابط "_fini"
كوظيفة للاتصال.

-g تم التجاهل. تم توفيره للتوافق مع الأدوات الأخرى.

-G قيمنا
- gpsize =قيمنا
اضبط الحجم الأقصى للكائنات المطلوب تحسينها باستخدام GP
سجل في الأحجام. هذا مفيد فقط لتنسيقات ملفات الكائن
مثل MIPS ELF التي تدعم وضع الأشياء الكبيرة والصغيرة فيها
أقسام مختلفة. يتم تجاهل هذا بالنسبة لتنسيقات ملفات الكائنات الأخرى.

-h الاسم
-Soname =الاسم
عند إنشاء كائن مشترك ELF ، اضبط DT_SONAME الداخلي
الحقل إلى الاسم المحدد. عندما يتم ربط ملف قابل للتنفيذ مع ملف
الكائن المشترك الذي يحتوي على حقل DT_SONAME ، ثم عندما يكون الملف القابل للتنفيذ
عند تشغيل الرابط الديناميكي، سيحاول تحميل الكائن المشترك
المحدد بواسطة الحقل DT_SONAME بدلاً من استخدام الملف
الاسم المعطى للرابط.

-i قم بإجراء ارتباط تزايدي (مثل الخيار -r).

-init =الاسم
عند إنشاء كائن ELF قابل للتنفيذ أو مشترك، اتصل بالاسم عندما
يتم تحميل الكائن القابل للتنفيذ أو المشترك ، عن طريق تعيين DT_INIT إلى
عنوان الوظيفة. بشكل افتراضي ، يستخدم الرابط "_init"
كوظيفة للاتصال.

-l الأسماء
- المكتبة =الأسماء
أضف ملف الأرشيف أو الكائن المحدد بواسطة الأسماء إلى قائمة
الملفات المراد ربطها. يمكن استخدام هذا الخيار في أي عدد من المرات. لو
الأسماء هو من النموذج :اسم الملف, ld سيبحث في مسار المكتبة
لملف يسمى اسم الملفوإلا فإنه سيبحث في المكتبة
مسار ملف يسمى libnamespec.a.

على الأنظمة التي تدعم المكتبات المشتركة ، ld قد تبحث أيضًا عن
ملفات أخرى غير libnamespec.a. على وجه التحديد ، على ELF و SunOS
نظم، ld سيبحث في دليل عن مكتبة تسمى
libnamespec.so قبل البحث عن واحد يسمى libnamespec.a. (بواسطة
اصطلاحًا ، يشير ملحق ".so" إلى مكتبة مشتركة.) ملاحظة
لا ينطبق عليها هذا السلوك :اسم الملفالذي دائما
يحدد ملف يسمى اسم الملف.

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

رؤية -( خيار لطريقة لإجبار الرابط على البحث في الأرشيفات
عدة مرات.

يمكنك سرد نفس الأرشيف عدة مرات في سطر الأوامر.

يعتبر هذا النوع من البحث في الأرشيف معيارًا لروابط Unix.
ومع ذلك ، إذا كنت تستخدم ld في AIX ، لاحظ أنه يختلف عن
سلوك رابط AIX.

-L البحث
- مسار المكتبة =البحث
أضف المسار البحث إلى قائمة المسارات التي ld سيبحث عن
مكتبات الأرشيف و ld نصوص التحكم. يمكنك استخدام هذا الخيار
أي عدد من المرات. يتم البحث في الدلائل بالترتيب
والتي تم تحديدها في سطر الأوامر. الدلائل
المحددة في سطر الأوامر يتم البحث عنها قبل الإعداد الافتراضي
الدلائل. الجميع -L تنطبق الخيارات على الجميع -l الخيارات ، بغض النظر عن
الترتيب الذي تظهر به الخيارات. -L الخيارات لا تؤثر
كيف ld يبحث عن نص رابط ما لم يكن -T تم تحديد الخيار.

If البحث يبدأ بـ "=" ، ثم سيتم استبدال "=" ب
sysroot بادئة، يسيطر عليها - الجذور الخيار ، أو المحدد
عندما يتم تكوين الرابط.

مجموعة المسارات الافتراضية التي تم البحث عنها (بدون تحديدها بامتداد -L)
يعتمد على أي وضع مضاهاة ld يستخدم ، وفي بعض الحالات أيضًا
حول كيفية تكوينه.

يمكن أيضًا تحديد المسارات في برنامج نصي للارتباط مع ملف
أمر "SEARCH_DIR". يتم البحث في الدلائل المحددة بهذه الطريقة
عند النقطة التي يظهر فيها البرنامج النصي للرابط في الأمر
الخط.

-m محاكاة
محاكاة محاكاة رابط. يمكنك سرد المتاحة
مضاهاة مع - الإسراف or -V خيارات.

إذا كان -m لم يتم استخدام الخيار ، يتم أخذ المحاكاة من ملف
متغير البيئة "LDEMULATION"، إذا تم تعريفه.

وإلا، فإن المحاكاة الافتراضية تعتمد على حالة الرابط
تكوين.

-M
- طباعة الخريطة
اطبع خريطة ارتباط إلى الإخراج القياسي. توفر خريطة الارتباط
معلومات حول الرابط، بما في ذلك ما يلي:

أين يتم تعيين ملفات الكائن في الذاكرة.

· كيف يتم تخصيص الرموز المشتركة.

· جميع أعضاء الأرشيف المدرجين في الرابط مع ذكر
الرمز الذي تسبب في جلب عضو الأرشيف.

· القيم المخصصة للرموز.

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

فو = 1
فو = فو * 4
فو = فو + 8

سينتج الإخراج التالي في خريطة الارتباط إذا كان -M
يستخدم الخيار:

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

يرى التعبيرات لمزيد من المعلومات حول التعبيرات في
نصوص رابط.

-n
--nmagic
قم بإيقاف تشغيل محاذاة الصفحات للأقسام ، وقم بتعطيل الارتباط مقابل
المكتبات المشتركة. إذا كان تنسيق الإخراج يدعم أسلوب Unix السحري
الأرقام ، ضع علامة على الإخراج كـ "NMAGIC".

-N
--أوماجيك
قم بتعيين أقسام النص والبيانات لتكون قابلة للقراءة والكتابة. أيضًا،
لا تقم بمحاذاة شريحة البيانات على الصفحة، وقم بتعطيل الارتباط
المكتبات المشتركة. إذا كان تنسيق الإخراج يدعم أسلوب Unix السحري
الأرقام ، ضع علامة على الإخراج كـ "OMAGIC". ملاحظة: على الرغم من أن ملف
يُسمح بقسم النص لأهداف PE-COFF، ولا يتوافق مع
مواصفات التنسيق المنشورة بواسطة Microsoft.

- لا omagic
ينفي هذا الخيار معظم تأثيرات -N خيار. يحدد
قسم النص ليكون للقراءة فقط، ويفرض أن يكون مقطع البيانات
محاذاة الصفحة. ملاحظة - هذا الخيار لا يمكّن الارتباط
مكتبات مشتركة. يستخدم -ديناميكية لهذا.

-o الناتج
- الخرج =الناتج
استعمل الناتج كاسم البرنامج الذي أنتجه ld؛ اذا هذا
الخيار غير محدد الاسم أ يتم استخدامه بشكل افتراضي. ال
يمكن لأمر البرنامج النصي "OUTPUT" أيضًا تحديد اسم ملف الإخراج.

-O مستوى
If مستوى هي قيم عددية أكبر من الصفر ld يحسن
انتاج. قد يستغرق هذا وقتًا أطول بكثير وبالتالي
ربما يجب تمكينه فقط للثنائي النهائي. في ال
لحظة هذا الخيار يؤثر فقط على إنشاء مكتبة مشتركة ELF.
قد تستخدم الإصدارات المستقبلية من الرابط هذا الخيار بشكل أكبر.
حاليًا أيضًا لا يوجد اختلاف في سلوك الرابط لـ
قيم مختلفة غير صفرية لهذا الخيار. مرة أخرى قد يتغير هذا
مع الإصدارات المستقبلية.

- دولة الاندفاع
- دولة الاندفاع يسمح بالحفاظ على الوضع الحالي للأعلام
التي تحكم معالجة ملف الإدخال بحيث يمكن أن يكونوا جميعًا
استعادتها مع واحد مناظر - بوب الدولة الخيار.

الخيار الذي يتم تغطيته هو: -ديناميكية, - ثابت, -dn, -دي,
-call_shared, -غير مشترك, -ثابتة, -N, -n, - أرشيف كامل,
--لا أرشيف كامل, -r, -أور, - نسخة- dt- إدخالات مطلوبة,
- لا حاجة لنسخ dt إدخالات, --كما هو مطلوب, - لا حسب الحاجةو -a.

هدف واحد لهذا الخيار هو مواصفات pkg-config. عندما
تستخدم مع - الشلب الخيار جميع المكتبات التي قد تكون مطلوبة
المدرجة ثم من المحتمل أن تكون مرتبطة طوال الوقت. من الأفضل أن
إرجاع شيء على النحو التالي:

-Wl ، - حالة الدفع ، - حسب الحاجة - ليبون - libtwo -Wl، - pop-state

يلغي تأثير --push-state، ويستعيد القيم السابقة لـ
الأعلام التي تحكم معالجة ملف الإدخال.

-q
--emit-relocs
اترك أقسام ومحتويات النقل في الملفات التنفيذية المرتبطة بالكامل.
قد تحتاج أدوات تحليل وتحسين الارتباط اللاحق إلى هذه المعلومات
من أجل إجراء التعديلات الصحيحة على الملفات التنفيذية. هذا
ينتج عنه ملفات تنفيذية أكبر.

هذا الخيار مدعوم حاليًا على منصات ELF فقط.

- ديناميكية القوة
فرض أن يحتوي ملف الإخراج على أقسام ديناميكية. هذا الخيار هو
محددة لأهداف VxWorks.

-r
- ريلوكاتابل
إنشاء مخرجات قابلة للنقل --- أي إنشاء ملف إخراج يمكن
يمكن أن تكون بدورها بمثابة مدخلات ل ld. غالبا ما يسمى هذا جزئي
ربط. كأثر جانبي ، في البيئات التي تدعم المعيار
أرقام يونكس السحرية ، هذا الخيار يضبط أيضًا سحر ملف الإخراج
الرقم إلى "OMAGIC". إذا لم يتم تحديد هذا الخيار ، فستكون مطلقة
تم إنتاج الملف. عند ربط برامج C ++ ، يكون هذا الخيار سوف ليس
حل الإشارات إلى المنشئين؛ للقيام بذلك، استخدم -أور.

عندما لا يكون لملف الإدخال نفس تنسيق الإخراج
ملف ، يتم دعم الارتباط الجزئي فقط إذا لم يكن ملف الإدخال هذا مدعومًا
تحتوي على أي عمليات نقل. يمكن أن تحتوي تنسيقات الإخراج المختلفة على المزيد
قيود؛ على سبيل المثال، لا يتم دعم بعض التنسيقات المستندة إلى "a.out".
الارتباط الجزئي مع ملفات الإدخال بتنسيقات أخرى على الإطلاق.

هذا الخيار يفعل نفس الشيء مثل -i.

-R اسم الملف
- مجرد رموز =اسم الملف
اقرأ أسماء الرموز وعناوينها من اسم الملف، لكن لا
قم بنقله أو تضمينه في الإخراج. هذا يسمح لمخرجاتك
ملف للإشارة رمزيًا إلى المواقع المطلقة للذاكرة المحددة
في برامج أخرى. يمكنك استخدام هذا الخيار أكثر من مرة.

للتوافق مع روابط ELF الأخرى ، إذا كان الملف -R الخيار
متبوعًا باسم الدليل، بدلاً من اسم الملف
تعامل على أنها - مسار الخيار.

-s
- شريط الكل
احذف جميع معلومات الرمز من ملف الإخراج.

-S
- شريط التصحيح
احذف معلومات رمز مصحح الأخطاء (ولكن ليس كل الرموز) من ملف
ملف إلاخراج.

-t
--أثر
اطبع أسماء ملفات الإدخال بصيغة ld يعالجها.

-T ملف
- نص =ملف
استعمل ملف باعتباره البرنامج النصي رابط. يستبدل هذا البرنامج النصي ld's
نص رابط افتراضي (بدلاً من الإضافة إليه) ، لذا ملف الأوامر
يجب أن تحدد كل ما هو ضروري لوصف ملف الإخراج.
If ملف غير موجود في الدليل الحالي ، يبدو "ld"
لها في الدلائل المحددة من قبل أي سابق -L خيارات.
قد يؤدي إجراء -T تتراكم الخيارات.

-dT ملف
- النص الافتراضي =ملف
استعمل ملف باعتباره النص الافتراضي للرابط.

هذا الخيار مشابه لـ --النصي الخيار باستثناء ذلك
تأخرت معالجة البرنامج النصي حتى بعد باقي ملفات
تمت معالجة سطر الأوامر. وهذا يسمح بوضع الخيارات بعد ذلك
ال - النص الافتراضي الخيار في سطر الأوامر للتأثير على ملف
سلوك البرنامج النصي للرابط ، والذي يمكن أن يكون مهمًا عندما يكون ملف
لا يمكن للمستخدم التحكم في سطر أوامر الرابط مباشرة. (على سبيل المثال
لأن سطر الأوامر يتم إنشاؤه بواسطة أداة أخرى ، مثل
as دول مجلس التعاون الخليجي).

-u رمز
- undefined =رمز
القوة رمز ليتم إدخالها في ملف الإخراج كملف غير معرف
رمز. قد يؤدي القيام بذلك ، على سبيل المثال ، إلى تشغيل ربط ملفات
وحدات من المكتبات القياسية. -u يمكن أن تتكرر مع مختلف
وسيطات الخيار لإدخال رموز إضافية غير محددة. هذا
يكافئ الخيار الأمر النصي رابط "EXTERN".

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

- معرّف طلب =رمز
تتطلب ذلك رمز تم تعريفه في ملف الإخراج. هذا الخيار هو
نفس الخيار --غير معرف ما عدا ذلك إذا رمز غير محدد
في ملف الإخراج ، سيصدر الرابط خطأ ويخرج.
يمكن تحقيق نفس التأثير في نص رابط باستخدام
"EXTERN" و "ASSERT" و "DEFINED" معًا. يمكن استخدام هذا الخيار
عدة مرات لطلب رموز إضافية.

-أور لأي شيء بخلاف برامج C ++ ، فإن هذا الخيار يعادل
-r: يولد إخراجًا قابل للنقل --- أي ملف إخراج يمكنه ذلك
بدوره بمثابة مدخلات ل ld. عند ربط برامج C++، -أور هل
حل الإشارات إلى المنشئين ، على عكس -r. انها لا تعمل ل
تستخدم -أور على الملفات التي تم ربطها هي نفسها بـ -أور؛ مرة واحدة في
تم إنشاء جدول المُنشئ ، ولا يمكن إضافته إليه. يستخدم -أور
فقط للارتباط الجزئي الأخير ، و -r للآخرين.

- التعامل مع الأورفان =MODE
التحكم في كيفية التعامل مع الأقسام اليتيمة. قسم اليتيم واحد
لم يذكر على وجه التحديد في نص رابط.

MODE يمكن أن تحتوي على أي من القيم التالية:

"مكان"
يتم وضع الأقسام اليتيمة في قسم الإخراج المناسب
باتباع الاستراتيجية الموضحة في يتيم لإعادة التشكيل.
خيار --فريدة من نوعها يؤثر أيضًا على كيفية وضع الأقسام.

"تجاهل"
يتم التخلص من جميع أقسام الأيتام ، وذلك بوضعها في
/تجاهل/ والقسم الخاص به.

"تحذير"
سيضع الرابط قسم اليتيم مثل "مكان" و
يصدر أيضًا تحذيرًا.

"خطأ"
سيتم إنهاء الرابط مع حدوث خطأ في حالة وجود أي قسم يتيم
وجدت.

الافتراضي إذا - التعامل مع الأورفان لم يتم إعطاء "المكان".

- فريد [=الجزء]
يقوم بإنشاء قسم إخراج منفصل لكل قسم إدخال مطابق
الجزء، أو إذا كان حرف البدل الاختياري الجزء الحجة مفقودة ،
لكل قسم إدخال يتيم. قسم اليتيم هو واحد لا
المذكورة على وجه التحديد في البرنامج النصي رابط. يمكنك استخدام هذا الخيار
عدة مرات على سطر الأوامر؛ يمنع الاندماج العادي
من أقسام الإدخال التي تحمل نفس الاسم ، وتجاوز قسم الإخراج
المهام في البرنامج النصي رابط.

-v
--الإصدار
-V اعرض رقم الإصدار لـ ld. -V يسرد الخيار أيضًا ملفات
المحاكاة المدعومة.

-x
--تجاهل كل
احذف جميع الرموز المحلية.

-X
- تجاهل-السكان المحليين
احذف جميع الرموز المحلية المؤقتة. (تبدأ هذه الرموز بـ
بادئات التسمية المحلية الخاصة بالنظام ، عادةً .L لأنظمة ELF
or L لأنظمة a.out التقليدية.)

-y رمز
- رمز التتبع =رمز
اطبع اسم كل ملف مرتبط فيه رمز يبدو. هذا
يمكن إعطاء الخيار أي عدد من المرات. في العديد من الأنظمة هو
من الضروري إضافة الشرطة السفلية.

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

-Y مسار
أضف مسار إلى مسار البحث الافتراضي للمكتبة. هذا الخيار موجود
للتوافق مع سولاريس.

-z الكلمة
الكلمات الرئيسية المعترف بها هي:

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

defs
لا يسمح بالرموز غير المعرفة في ملفات الكائنات. رموز غير محددة
في المكتبات المشتركة لا تزال مسموحة.

إكسيكستاك
يضع علامة على الكائن كمتطلب مكدس قابل للتنفيذ.

شامل
يكون هذا الخيار ذا معنى فقط عند إنشاء كائن مشترك.
فهو يجعل الرموز المحددة بواسطة هذا الكائن المشترك متاحة
لتحليل رمز المكتبات التي تم تحميلها لاحقًا.

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

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

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

تحميل
يضع علامة على الكائن الذي تتم معالجة عوامل التصفية فيه على الفور
مدة العرض.

مولديف
يسمح بتعريفات متعددة.

com.nocombreloc
تعطيل دمج أقسام إعادة تحديد متعددة.

نوكوبيريلوك
قم بتعطيل متغيرات .dynbss التي تم إنشاؤها باستخدام الرابط بدلاً من
المتغيرات المحددة في المكتبات المشتركة. قد يؤدي إلى ديناميكية
عمليات نقل النص.

com.nodefaultlib
يمثل الكائن الذي يبحث عن تبعيات هذا
سيتجاهل الكائن أي مسارات بحث افتراضية في المكتبة.

nodelete
وضع علامة على أنه لا يجب إلغاء تحميل الكائن في وقت التشغيل.

نودلوبين
وضع علامة على الكائن غير متاح لـ "dlopen".

nodump
علامات لا يمكن تفريغ الكائن بواسطة "تفريغ".

com.noexecstack
وضع علامة على الكائن على أنه لا يتطلب مكدسًا قابلاً للتنفيذ.

نص
معاملة DT_TEXTREL في الكائن المشترك كخطأ.

notext
لا تعامل DT_TEXTREL في الكائن المشترك كخطأ.

النص
لا تعامل DT_TEXTREL في الكائن المشترك كخطأ.

نوريلرو
لا تقم بإنشاء رأس مقطع ELF "PT_GNU_RELRO" في ملف
موضوع.

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

الأصل
علامات الكائن قد تحتوي على $ ORIGIN.

relro
تكوين رأس مقطع ELF "PT_GNU_RELRO" في الكائن.

الحد الأقصى لحجم الصفحة =قيمنا
تعيين الحد الأقصى لحجم الصفحة مضاهاة إلى قيمنا.

حجم الصفحة المشتركة =قيمنا
اضبط حجم الصفحة الشائع للمحاكاة على قيمنا.

حجم المكدس =قيمنا
حدد حجم المكدس في مقطع ELF "PT_GNU_STACK".
سيؤدي تحديد الصفر إلى تجاوز أي حجم افتراضي غير صفري
إنشاء مقطع "PT_GNU_STACK".

bndplt
أنشئ دائمًا بادئة BND في إدخالات PLT. معتمد لـ
Linux / x86_64.

البيانات المحمية noextern
لا تعامل رمز البيانات المحمية على أنه خارجي عند البناء
مكتبة مشتركة. يتجاوز هذا الخيار الإعداد الافتراضي للواجهة الخلفية للرابط.
يمكن استخدامه للتغلب على عمليات النقل غير الصحيحة
رموز البيانات المحمية التي تم إنشاؤها بواسطة المترجم. التحديثات على
رموز البيانات المحمية بواسطة وحدة نمطية أخرى غير مرئية لـ
المكتبة المشتركة الناتجة. مدعوم لـ i386 وx86-64.

call-nop = بادئة addr
call-nop = بادئة nop
call-nop = اللاحقة-nop
call-nop = بادئة-بايت
نداء نوب = لاحقة-بايت
حدد حشوة "NOP" ذات بايت واحد عند التحويل بشكل غير مباشر
استدعاء وظيفة محددة محليًا، foo، عبر فتحة GOT الخاصة بها.
call-nop = بادئة addr يولد "0x67 call foo".
call-nop = بادئة nop يولد "0x90 call foo".
call-nop = اللاحقة-nop يولد "استدعاء foo 0x90".
call-nop = بادئة-بايت يولد "بايت دعوة فو ".
نداء نوب = لاحقة-بايت يولد "call foo بايت ". معتمد لـ
i386 و x86_64.

يتم تجاهل الكلمات الأساسية الأخرى للتوافق مع Solaris.

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

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

استخدام هذا الخيار له تكلفة أداء كبيرة. انه الافضل
لاستخدامه فقط عندما تكون هناك مراجع دائرية لا يمكن تجنبها
بين اثنين أو أكثر من المحفوظات.

- قبول - غير معروف - المدخلات - القوس
--لا تقبل - غير معروف - المدخلات - القوس
يخبر الرابط بقبول ملفات الإدخال التي لا يمكن أن تكون بنيتها كذلك
معروف. الافتراض هو أن المستخدم يعرف ما هو عليه
يفعل ويريد عمدا الارتباط في ملفات الإدخال غير المعروفة هذه.
كان هذا هو السلوك الافتراضي للرابط، قبل الإصدار 2.14.
السلوك الافتراضي من الإصدار 2.14 وما بعده هو رفض ذلك
إدخال الملفات ، وهكذا - قبول - غير معروف - المدخلات - القوس كان الخيار
تمت إضافتها لاستعادة السلوك القديم.

--كما هو مطلوب
- لا حسب الحاجة
يؤثر هذا الخيار على علامات ELF DT_NEEDED للمكتبات الديناميكية
المذكورة في سطر الأوامر بعد --كما هو مطلوب الخيار.
سيضيف الرابط عادة علامة DT_NEEDED لكل ديناميكية
مكتبة المذكورة في سطر الأوامر ، بغض النظر عما إذا كان
هناك حاجة فعلا للمكتبة أم لا. --كما هو مطلوب يسبب DT_NEEDED
علامة ليتم إرسالها فقط لمكتبة at أن نقطة in ال الصفحة
يفي بمرجع رمز غير معرف غير ضعيف من ملف عادي
ملف الكائن أو إذا لم يتم العثور على المكتبة في قوائم DT_NEEDED
من المكتبات الأخرى المطلوبة ، مرجع رمز غير ضعيف وغير محدد
من مكتبة ديناميكية أخرى مطلوبة. ملفات الكائن أو المكتبات
تظهر على سطر الأوامر بعد المكتبة المعنية لا
تؤثر على ما إذا كان ينظر إلى المكتبة حسب الحاجة. هذا مشابه لـ
قواعد استخراج ملفات الكائنات من الأرشيف.
- لا حسب الحاجة يعيد السلوك الافتراضي.

--إضافة
--لا حاجة لإضافة
تم إهمال هذين الخيارين بسبب تشابه
أسمائهم إلى --كما هو مطلوب و - لا حسب الحاجة خيارات. هم
تم استبداله بـ - نسخة- dt- إدخالات مطلوبة و
- لا حاجة لنسخ dt إدخالات.

-يجزم الكلمة
تم تجاهل هذا الخيار للتوافق مع SunOS.

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

-بالمجموعة
قم بتعيين علامة "DF_1_GROUP" في الإدخال "DT_FLAGS_1" في الديناميكية
قسم. يؤدي هذا إلى قيام رابط وقت التشغيل بالتعامل مع عمليات البحث في هذا
الكائن وتبعياته يتم إجراؤها داخل المجموعة فقط.
- رموز غير محلولة = تقرير - الكل هو ضمني. هذا الخيار فقط
مفيد على منصات ELF التي تدعم المكتبات المشتركة.

- ثابت
-dn
-غير مشترك
-ثابتة
لا تربط بالمكتبات المشتركة. هذا له معنى فقط على
الأنظمة الأساسية التي يتم دعم المكتبات المشتركة لها. المختلف
المتغيرات من هذا الخيار للتوافق مع أنظمة مختلفة.
يمكنك استخدام هذا الخيار عدة مرات في سطر الأوامر: it
يؤثر على بحث المكتبة عن -l الخيارات التي تتبعها. هذه
الخيار يعني أيضا - رموز غير محلولة = تقرير - الكل. هذا الخيار
يمكن استخدامها مع -مشاركة. القيام بذلك يعني أن المكتبة المشتركة هي
يتم إنشاؤها ولكن كل المراجع الخارجية للمكتبة
يجب حلها عن طريق سحب الإدخالات من المكتبات الثابتة.

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

وظائف رمزية
عند إنشاء مكتبة مشتركة، قم بربط المراجع بالوظيفة العامة
رموز التعريف داخل المكتبة المشتركة ، إن وجدت. هذا
يمكن أيضًا استخدام الخيار مع - ديناميكية التصدير الخيار ، متى
إنشاء منصب مستقل قابل للتنفيذ، لربط المراجع به
رموز الوظائف العامة للتعريف داخل الملف القابل للتنفيذ.
هذا الخيار مفيد فقط على منصات ELF التي تدعم
المكتبات المشتركة ووضع الملفات التنفيذية المستقلة.

- قائمة ديناميكية =ملف قائمة ديناميكية
حدد اسم ملف القائمة الديناميكي للرابط. هذا هو
يُستخدم عادةً عند إنشاء مكتبات مشتركة لتحديد قائمة
الرموز العالمية التي لا ينبغي أن تكون مراجعها مرتبطة بـ
التعريف داخل المكتبة المشتركة ، أو الإنشاء ديناميكيًا
الملفات التنفيذية المرتبطة لتحديد قائمة الرموز التي يجب أن تكون
تمت إضافته إلى جدول الرموز في الملف القابل للتنفيذ. هذا الخيار فقط
مفيد على منصات ELF التي تدعم المكتبات المشتركة.

تنسيق القائمة الديناميكية هو نفسه عقدة الإصدار
بدون نطاق واسم العقدة. يرى VERSION للمزيد من المعلومات.

- قائمة البيانات الديناميكية
قم بتضمين كافة رموز البيانات العالمية إلى القائمة الديناميكية.

- قائمة-ديناميكية- cpp-new
قم بتوفير القائمة الديناميكية المضمنة لمشغل C ++ الجديد وحذفها.
إنه مفيد بشكل أساسي لبناء libstdc++ مشترك.

- قائمة ديناميكية cpp-typeinfo
قم بتوفير القائمة الديناميكية المضمنة لنوع وقت تشغيل C++
هوية.

- تحقق الأقسام
- لا تحقق المقاطع
يطلب الرابط ليس للتحقق من عناوين الأقسام بعد أن تم
تم تعيينه لمعرفة ما إذا كان هناك أي تداخلات. عادة الرابط
سيقوم بإجراء هذا الفحص، وإذا وجد أي تداخلات فسوف يقوم بذلك
إنتاج رسائل خطأ مناسبة. الرابط يعرف عن و
لا يعطي بدلات للأقسام في التراكبات. الافتراضي
يمكن استعادة السلوك باستخدام مفتاح سطر الأوامر
- تحقق الأقسام. لا يتم عادة التحقق من تداخل القسم
روابط قابلة للنقل. يمكنك فرض التحقق في هذه الحالة باستخدام
ال - تحقق الأقسام الخيار.

- نسخة- dt- إدخالات مطلوبة
- لا حاجة لنسخ dt إدخالات
يؤثر هذا الخيار على معالجة المكتبات الديناميكية المشار إليها
بواسطة علامات DT_NEEDED في الداخل مكتبات ELF الديناميكية المذكورة في ملف
سطر الأوامر. عادةً لن يضيف الرابط علامة DT_NEEDED إلى ملف
إخراج ثنائي لكل مكتبة مذكورة في علامة DT_NEEDED في ملف
مكتبة الإدخال الديناميكية مع - نسخة- dt- إدخالات مطلوبة المحدد في
سطر الأوامر ولكن أي مكتبات ديناميكية تتبعه ستفعل ذلك
تمت إضافة إدخالات DT_NEEDED الخاصة بهم. يمكن أن يكون السلوك الافتراضي
استعادة مع - لا حاجة لنسخ dt إدخالات.

يؤثر هذا الخيار أيضًا على دقة الرموز بتنسيق
مكتبات ديناميكية. مع - نسخة- dt- إدخالات مطلوبة مكتبات ديناميكية
المذكورة في سطر الأوامر سيتم البحث عنها بشكل متكرر،
بعد علامات DT_NEEDED الخاصة بهم إلى مكتبات أخرى ، من أجل
حل الرموز المطلوبة من قبل ثنائي الإخراج. مع الافتراضي
مع تحديد البحث في المكتبات الديناميكية التي تتبعه
سيتوقف مع المكتبة الديناميكية نفسها. لن توجد روابط DT_NEEDED
يتم اجتيازها لحل الرموز.

- المرجع
إخراج جدول مرجعي صليب. إذا كان ملف خريطة الرابط قيد التنفيذ
تم إنشاؤه ، تتم طباعة جدول الإسناد الترافقي إلى ملف الخريطة.
خلاف ذلك ، يتم طباعته على الإخراج القياسي.

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

--لا يوجد تعريف مشترك
يمنع هذا الخيار تخصيص العناوين للرموز الشائعة.
الأمر النصي "INHIBIT_COMMON_ALLOCATION" له نفس التأثير.

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

--defsym =رمز=التعبير
قم بإنشاء رمز عام في ملف الإخراج ، يحتوي على المطلق
العنوان الذي قدمه التعبير. يمكنك استخدام هذا الخيار عدة مرات
حسب الضرورة لتحديد رموز متعددة في سطر الأوامر. أ
شكل محدود من الحساب معتمد لـ التعبير في
السياق: يمكنك إعطاء ثابت ست عشري أو اسم
الرمز الموجود، أو استخدم "+" و"-" لإضافة أو طرح النظام الست عشري
الثوابت أو الرموز. إذا كنت بحاجة إلى تعبيرات أكثر تفصيلاً ،
ضع في اعتبارك استخدام لغة أوامر الرابط من نص برمجي. ملحوظة:
يجب ألا تكون هناك مسافة بيضاء بينهما رمز، علامة يساوي
("=") و التعبير.

--تشابك [=نمط]
--لا ديانجلي
تتحكم هذه الخيارات في ما إذا كان سيتم تفكيك أسماء الرموز عن طريق الخطأ
الرسائل والمخرجات الأخرى. عندما يُطلب من الرابط أن يفكك ، فإنه
يحاول عرض أسماء الرموز بأسلوب مقروء: فهو يقطع
الشرطات السفلية البادئة إذا تم استخدامها بواسطة تنسيق ملف الكائن، و
يحول أسماء الرموز المشوهة C ++ إلى أسماء يمكن للمستخدم قراءتها.
المترجمات المختلفة لها أنماط مختلفة من التشويش. اختياري
يمكن استخدام حجة أسلوب demangling لاختيار ملف
أسلوب demanling للمترجم الخاص بك. سيتم فك الارتباط بواسطة
الافتراضي ما لم متغير البيئة COLLECT_NO_DEMANGLE تم تعيينه.
يمكن استخدام هذه الخيارات لتجاوز الإعداد الافتراضي.

-Iملف
- رابط ديناميكي =ملف
قم بتعيين اسم الرابط الديناميكي. هذا له معنى فقط عندما
إنشاء ملفات تنفيذية مرتبطة ديناميكيًا ELF. الديناميكية الافتراضية
الرابط هو الصحيح عادة ؛ لا تستخدم هذا إلا إذا كنت تعرف ما أنت
يفعلون.

--لا رابط ديناميكي
عند إنتاج ملف قابل للتنفيذ، احذف طلب الديناميكية
رابط ليتم استخدامه في وقت التحميل. هذا ذو معنى فقط لـ ELF
الملفات التنفيذية التي تحتوي على عمليات نقل ديناميكية ، وتتطلب عادةً
رمز نقطة الدخول القادر على معالجة عمليات النقل هذه.

- تحذيرات قاتلة
--لا تحذيرات مميتة
تعامل مع جميع التحذيرات على أنها أخطاء. يمكن أن يكون السلوك الافتراضي
مع الخيار --لا تحذيرات مميتة.

--force-exe-لاحقة
تأكد من أن ملف الإخراج له لاحقة. exe.

إذا لم يكن ملف الإخراج المرتبط بالكامل الذي تم إنشاؤه بنجاح يحتوي على ملف
اللاحقة ".exe" أو ".dll"، فإن هذا الخيار يفرض على الرابط نسخ الملف
ملف الإخراج إلى أحد نفس الاسم مع لاحقة ". exe". هذا
يكون الخيار مفيدًا عند استخدام ملفات تعريف Unix غير المعدلة على ملف
مضيف Microsoft Windows، نظرًا لأن بعض إصدارات Windows لن تقوم بتشغيل
الصورة ما لم تنتهي بلاحقة ".exe".

- أقسام gc
--لا يوجد أقسام gc
تمكين جمع البيانات المهملة لأقسام الإدخال غير المستخدمة. يتم تجاهله
على الأهداف التي لا تدعم هذا الخيار. السلوك الافتراضي
(من عدم تنفيذ عملية جمع البيانات المهملة) يمكن استعادتها بواسطة
تحديد --لا يوجد أقسام gc على سطر الأوامر. لاحظ أن القمامة
يتم دعم جمع أهداف تنسيق COFF و PE ، لكن تنسيق
يعتبر التنفيذ حاليًا تجريبيًا.

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

يمكن ضبط هذا الخيار عند عمل ارتباط جزئي (ممكّن مع
خيار -r). في هذه الحالة يجب أن يكون جذر الرموز المحفوظة
صراحة إما عن طريق --دخول or --غير معرف خيار أو
بواسطة أمر "ENTRY" في البرنامج النصي للرابط.

- طباعة- أقسام- gc
--لا يوجد طباعة- أقسام- gc
قائمة بجميع الأقسام التي تمت إزالتها عن طريق جمع البيانات المهملة. القائمة هي
مطبوعة على ستدير. هذا الخيار فعال فقط إذا كان القمامة
تم تمكين المجموعة عبر - أقسام gc) خيار. ال
السلوك الافتراضي (عدم إدراج الأقسام التي تمت إزالتها)
يمكن استعادتها عن طريق تحديد --لا يوجد طباعة- أقسام- gc بناء على الأمر
الخط.

- تنسيق الإخراج والطباعة
اطبع اسم تنسيق الإخراج الافتراضي (ربما متأثرًا بـ
خيارات سطر الأوامر الأخرى). هذا هو الخيط الذي سيظهر
في أمر نصي رابط "OUTPUT_FORMAT".

- استخدام ذاكرة الطباعة
طباعة الحجم المستخدم والحجم الإجمالي والحجم المستخدم لمناطق الذاكرة التي تم إنشاؤها
مع الالجائزة الذاكرة يأمر. هذا مفيد في الأهداف المضمنة لـ
الحصول على عرض سريع لمقدار الذاكرة الخالية. شكل ملف
الإخراج يحتوي على عنوان واحد وسطر واحد لكل منطقة. كلاهما بشري
يمكن قراءتها والتحليل بسهولة بواسطة الأدوات. هنا مثال على
انتاج:

منطقة الذاكرة المستخدمة الحجم المنطقة الحجم٪ العمر المستخدم
ROM: 256 كيلو بايت 1 ميجا بايت 25.00٪
ذاكرة الوصول العشوائي: 32 B 2 جيجابايت 0.00٪

--مساعدة
اطبع ملخصًا لخيارات سطر الأوامر في الإخراج القياسي
والخروج.

--تهدف المساعدة
اطبع ملخصًا لجميع الخيارات المحددة المستهدفة على المعيار
الإخراج والخروج.

-خريطة =ملف الخريطة
اطبع خريطة ارتباط إلى الملف ملف الخريطة. انظر وصف
-M الخيار أعلاه.

--لا تحفظ الذاكرة
ld يعمل عادةً على تحسين سرعة استخدام الذاكرة عن طريق التخزين المؤقت لملفات
جداول الرموز لملفات الإدخال في الذاكرة. هذا الخيار يقول ld إلى
بدلاً من ذلك ، قم بتحسين استخدام الذاكرة ، عن طريق إعادة قراءة جداول الرموز
عند الضرورة. قد يكون هذا مطلوبًا إذا ld نفاد مساحة الذاكرة
أثناء ربط ملف تنفيذي كبير.

--لا - غير محدد
-z defs
قم بالإبلاغ عن مراجع الرموز التي لم يتم حلها من ملفات الكائنات العادية.
يتم ذلك حتى إذا كان الرابط يقوم بإنشاء مشاركة غير رمزية
مكتبة. مفتاح - [no-] allow-shlib-undefined تسيطر على
سلوك الإبلاغ عن المراجع التي لم يتم حلها والتي تم العثور عليها في Shared
يتم ربط المكتبات بـ.

- السماح متعدد التعريف
-z مولديف
عادة عندما يتم تعريف رمز عدة مرات ، فإن الرابط سيفعل ذلك
الإبلاغ عن خطأ فادح. تسمح هذه الخيارات بتعريفات متعددة و
سيتم استخدام التعريف الأول.

--السماح-شليب-غير محدد
- no-allow-shlib-undefined
يسمح أو لا يسمح بالرموز غير المعرفة في المكتبات المشتركة. هذا
التبديل مشابه ل --لا - غير محدد إلا أنه يحدد
السلوك عندما تكون الرموز غير المحددة في مكتبة مشتركة بدلاً من ذلك
من ملف كائن عادي. لا يؤثر على كيفية تعريفه
يتم التعامل مع الرموز الموجودة في ملفات الكائنات العادية.

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

أسباب السماح بمراجع الرموز غير المحددة في Shared
المكتبات المحددة في وقت الارتباط هي:

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

· توجد بعض أنظمة التشغيل مثل BeOS و HPPA حيث
الرموز غير المحددة في المكتبات المشتركة طبيعية.

نواة BeOS على سبيل المثال تصحيحات المكتبات المشتركة عند التحميل
الوقت لاختيار الوظيفة الأكثر ملاءمة لـ
العمارة الحالية. هذا يستخدم ، على سبيل المثال ، ل
تحديد وظيفة memset المناسبة ديناميكيًا.

- لا - نسخة غير محددة
عادةً عندما يكون للرمز إصدار غير محدد ، فإن الرابط سيفعل ذلك
تجاهله. لا يسمح هذا الخيار بالرموز ذات الإصدار غير المحدد و
سيتم إصدار خطأ فادح بدلاً من ذلك.

- الافتراضي المتماثل
إنشاء واستخدام إصدار رمز افتراضي (السونام) لـ
الرموز المصدرة غير المحولة.

- افتراضي استيراد سيمفر
إنشاء واستخدام إصدار رمز افتراضي (السونام) لـ
الرموز المستوردة unversioned.

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

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

--لا أرشيف كامل
قم بإيقاف تشغيل تأثير - أرشيف كامل خيار لاحقة
أرشفة الملفات.

- noinhibit-exec
احتفظ بملف الإخراج القابل للتنفيذ متى كان لا يزال قابلاً للاستخدام.
عادة ، لن ينتج الرابط ملف إخراج إذا كان
واجه أخطاء أثناء عملية الارتباط ؛ يخرج بدون كتابة
ملف الإخراج عندما يصدر أي خطأ على الإطلاق.

-نوستدليب
ابحث فقط في دلائل المكتبة المحددة صراحةً في الأمر
خط. أدلة المكتبة المحددة في البرامج النصية للرابط (بما في ذلك
يتم تجاهل البرامج النصية للرابط المحددة في سطر الأوامر).

- تنسيق =تنسيق الإخراج
ld قد يتم تكوينه لدعم أكثر من نوع واحد من ملفات الكائن.
إذا كان لديك ld تم تكوينه بهذه الطريقة ، يمكنك استخدام ملف - تنسيق خيار
لتحديد التنسيق الثنائي لملف كائن الإخراج. حتى عندما
ld تم تكوينه لدعم تنسيقات الكائنات البديلة، فلا تفعل ذلك
عادة ما تحتاج إلى تحديد هذا ، مثل ld يجب تهيئتها لإنتاج
كتنسيق إخراج افتراضي هو التنسيق الأكثر شيوعًا على كل جهاز.
تنسيق الإخراج عبارة عن سلسلة نصية ، اسم تنسيق معين
بدعم من مكتبات BFD. (يمكنك سرد الملف الثنائي المتاح
تنسيقات مع com.objdump -i.) يمكن لأمر البرنامج النصي "OUTPUT_FORMAT".
حدد أيضًا تنسيق الإخراج، ولكن هذا الخيار يتجاوزه.

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

-Qmagic
تم تجاهل هذا الخيار لتوافق Linux.

-QY تم تجاهل هذا الخيار للتوافق مع SVR4.

--يستريح
- لا الاسترخاء
خيار مع تأثيرات تعتمد على الآلة. هذا الخيار فقط
مدعومة على عدد قليل من الأهداف.

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

على بعض الأنظمة الأساسية ، قد يتم إجراء تحسينات عالمية لوقت الارتباط
التصحيح الرمزي للملف التنفيذي الناتج مستحيل. هذا هو
المعروف أن هذا هو الحال بالنسبة لعائلة Matsushita MN10200 و MN10300
من المعالجات.

على الأنظمة الأساسية التي لا يتم دعم ذلك فيها ، --يستريح مقبول ، ولكن
تجاهلها.

على منصات حيث --يستريح يتم قبول الخيار - لا الاسترخاء يمكن أن يكون
تستخدم لتعطيل الميزة.

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

- الاحتفاظ برموز ملف هل ليس تجاهل الرموز غير المحددة، أو
الرموز اللازمة للانتقال.

يمكنك فقط تحديد - الاحتفاظ برموز ملف مرة واحدة في الأمر
خط. يتجاوز -s و -S.

-rpath =دير
أضف دليلًا إلى مسار البحث في مكتبة وقت التشغيل. هذا مستخدم
عند ربط ملف ELF قابل للتنفيذ بالكائنات المشتركة. الجميع - مسار
يتم تسلسل الوسائط وتمريرها إلى رابط وقت التشغيل ، والذي
يستخدمها لتحديد موقع الكائنات المشتركة في وقت التشغيل. ال - مسار خيار
يُستخدم أيضًا عند تحديد موقع الكائنات المشتركة التي يحتاجها
الكائنات المشتركة المضمنة بشكل صريح في الرابط؛ انظر الوصف
ل -rpath- الارتباط اختيار. إذا - مسار لا يستخدم عند ربط
ELF قابل للتنفيذ، محتويات متغير البيئة
سيتم استخدام "LD_RUN_PATH" إذا تم تعريفه.

- مسار يمكن أيضًا استخدام الخيار على SunOS. بشكل افتراضي، على SunOS،
سيشكل الرابط مسار بحث في وقت التشغيل من بين جميع الملفات -L
يتم إعطاء الخيارات. اذا كان - مسار يستخدم الخيار ، وقت التشغيل
سيتم تشكيل مسار البحث حصريًا باستخدام - مسار الخيارات،
تجاهل -L خيارات. يمكن أن يكون هذا مفيدًا عند استخدام gcc، والذي
يضيف الكثير -L الخيارات التي قد تكون على أنظمة الملفات المحملة على NFS.

للتوافق مع روابط ELF الأخرى ، إذا كان الملف -R الخيار
متبوعًا باسم الدليل، بدلاً من اسم الملف
تعامل على أنها - مسار الخيار.

-rpath-link =دير
عند استخدام ELF أو SunOS ، قد تتطلب مكتبة مشتركة أخرى.
يحدث هذا عندما يتضمن ارتباط "ld -shared" مكتبة مشتركة كـ
أحد ملفات الإدخال.

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

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

يستخدم الرابط مسارات البحث التالية لتحديد موقع المطلوب
المكتبات المشتركة:

1. أي أدلة يحددها -rpath- الارتباط خيارات.

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

3. في نظام ELF ، للروابط الأصلية ، إذا كان الملف - مسار و
-rpath- الارتباط لم يتم استخدام الخيارات ، ابحث في محتويات ملف
متغير البيئة "LD_RUN_PATH".

4. في SunOS ، إذا كان - مسار لم يتم استخدام الخيار ، ابحث في أي
الدلائل المحددة باستخدام -L خيارات.

5. للحصول على رابط أصلي، ابحث في محتويات البيئة
المتغير "LD_LIBRARY_PATH".

6. بالنسبة لرابط ELF الأصلي، فإن الدلائل الموجودة في "DT_RUNPATH" أو
يتم البحث عن "DT_RPATH" للمكتبة المشتركة
المكتبات التي تحتاجها. يتم تجاهل إدخالات "DT_RPATH" إذا
إدخالات "DT_RUNPATH" موجودة.

7. الدلائل الافتراضية ، عادة / ليب و / البيرة / ليب.

8. للحصول على رابط أصلي على نظام ELF ، إذا كان الملف
/etc/ld.so.conf موجود، قائمة الدلائل الموجودة في ذلك
ملف.

إذا لم يتم العثور على المكتبة المشتركة المطلوبة ، فسيصدر الرابط
تحذير ومتابعة الارتباط.

-مشاركة
-قابلة للمشاركة
أنشئ مكتبة مشتركة. هذا مدعوم حاليًا على ELF فقط ،
منصات XCOFF و SunOS. في SunOS ، سيقوم الرابط تلقائيًا
إنشاء مكتبة مشتركة إذا كان -e الخيار غير مستخدم وهناك
رموز غير محددة في الرابط.

- شائع
--sort-common = تصاعدي
--sort-common = تنازلي
هذا الخيار يقول ld لفرز الرموز الشائعة عن طريق المحاذاة
تصاعديًا أو تنازليًا عند وضعها في
أقسام الإخراج المناسبة محاذاة الرمز التي تم النظر فيها هي
ستة عشر بايت أو أكبر، وثمانية بايت، وأربعة بايت، واثنين بايت، وواحد-
بايت. هذا لمنع الفجوات بين الرموز بسبب المحاذاة
قيود. إذا لم يتم تحديد ترتيب فرز ، فسيتم تنازليًا
يفترض النظام.

- قسم الفرز = الاسم
سيطبق هذا الخيار "SORT_BY_NAME" على جميع أقسام أحرف البدل
الأنماط في البرنامج النصي رابط.

- قسم الفرز = محاذاة
سيتم تطبيق هذا الخيار "SORT_BY_ALIGNMENT" على جميع أقسام أحرف البدل
الأنماط في البرنامج النصي رابط.

- تقسيم بملف [=الأحجام]
على غرار - تقسيم تلو الآخر لكنه ينشئ قسمًا جديدًا للإخراج لـ
كل ملف إدخال عندما الأحجام يتم التوصل إليه. الأحجام الافتراضي بحجم 1
إذا لم تعط.

- تقسيم تلو الآخر [=عد]
يحاول إنشاء أقسام إضافية في ملف الإخراج بحيث لا
قسم الإخراج الفردي في الملف يحتوي على أكثر من عد
الترحيلات. هذا مفيد عند إنشاء ملفات ضخمة قابلة للنقل
للتنزيل في نواة معينة في الوقت الفعلي باستخدام كائن COFF
تنسيق الملف؛ نظرًا لأن COFF لا يمكن أن يمثل أكثر من 65535
الترحيلات في قسم واحد. لاحظ أن هذا سوف يفشل
بتنسيقات ملفات الكائنات التي لا تدعم الأقسام التعسفية.
لن يقوم الرابط بتقسيم أقسام الإدخال الفردية لـ
إعادة التوزيع، لذلك إذا كان قسم الإدخال الواحد يحتوي على أكثر من
عد عمليات النقل سيحتوي قسم الإخراج الواحد على هذا العدد الكبير
الترحيلات. عد القيمة الافتراضية 32768.

--الحالات
حساب وعرض الإحصائيات حول تشغيل الرابط،
مثل وقت التنفيذ واستخدام الذاكرة.

- sysroot =دليل
استعمل دليل كموقع sysroot، متجاوزًا ملف
تكوين الوقت الافتراضي. هذا الخيار مدعوم فقط من خلال الروابط
التي تم تكوينها باستخدام - مع سيسروت.

- تنسيق تقليدي
بالنسبة لبعض الأهداف ، يكون ناتج ld يختلف في بعض النواحي عن
إخراج بعض الروابط الموجودة. يطلب هذا التبديل ld لاستخدام
التنسيق التقليدي بدلاً من ذلك.

على سبيل المثال ، في SunOS ، ld يجمع الإدخالات المكررة في الرمز
جدول سلسلة. هذا يمكن أن يقلل من حجم ملف الإخراج مع كامل
تصحيح المعلومات بأكثر من 30 بالمائة. لسوء الحظ ، فإن SunOS
برنامج "dbx" لا يمكنه قراءة البرنامج الناتج ("gdb" ليس لديه
مشكلة). ال - تنسيق تقليدي يقول التبديل ld لعدم الجمع
إدخالات مكررة.

- بداية القسم =اسم القسم=ORG
حدد موقع قسم في ملف الإخراج على العنوان المطلق المحدد
by ORG. يمكنك استخدام هذا الخيار عدة مرات حسب الضرورة
حدد أقسام متعددة في سطر الأوامر. ORG يجب أن تكون واحدة
عدد صحيح سداسي عشري؛ للتوافق مع الروابط الأخرى، يمكنك ذلك
حذف البادئة 0x عادة ما يرتبط بالقيم السداسية العشرية.
ملحوظة: يجب ألا تكون هناك مسافة بيضاء بينهما اسم القسمأطلقت حملة
علامة يساوي ("=") و ORG.

-Tbss =ORG
- البيانات =ORG
النص =ORG
مثل - بداية القسم، مع ".bss" أو ".data" أو ".text" مثل
اسم القسم.

- مقطع نصي =ORG
عند إنشاء ملف ELF قابل للتنفيذ ، فإنه سيحدد عنوان ملف
البايت الأول من جزء النص.

-القطعة -Trodata =ORG
عند إنشاء ELF قابل للتنفيذ أو كائن مشترك لهدف حيث
تكون بيانات القراءة فقط في الجزء الخاص بها منفصلاً عن الجزء الخاص بها
نص قابل للتنفيذ ، سيتم تعيين عنوان البايت الأول من
شريحة البيانات للقراءة فقط.

- الجزء القديم =ORG
عند إنشاء ELF قابل للتنفيذ أو كائن مشترك لوسيط x86-64
نموذج الذاكرة ، سيتم تعيين عنوان البايت الأول من
مقطع ldata.

- رموز غير محلولة =طريقة
حدد كيفية التعامل مع الرموز التي لم يتم حلها. هنالك أربعة
القيم الممكنة ل طريقة:

تجاهل الكل
لا تبلغ عن أي رموز لم يتم حلها.

تقرير الكل
الإبلاغ عن جميع الرموز التي لم يتم حلها. هذا هو الافتراضي.

تجاهل ملفات الكائن
الإبلاغ عن الرموز التي لم يتم حلها والمضمنة في Shared
المكتبات ، لكن تجاهلها إذا كانت تأتي من كائن عادي
الملفات.

تجاهل في libs المشتركة
الإبلاغ عن الرموز التي لم يتم حلها والتي تأتي من ملفات الكائنات العادية،
ولكن تجاهلها إذا كانت تأتي من المكتبات المشتركة. هذا يمكن
تكون مفيدة عند إنشاء ثنائي ديناميكي ومن المعروف أن
جميع المكتبات المشتركة التي ينبغي الرجوع إليها هي
المدرجة في سطر أوامر الرابط.

يمكن أيضًا أن يكون سلوك المكتبات المشتركة بمفردها
يسيطر عليها - [no-] allow-shlib-undefined الخيار.

عادةً سيقوم الرابط بإنشاء رسالة خطأ لكل منها
تم الإبلاغ عن رمز لم يتم حله ولكن الخيار - رموز لم يتم حلها
يمكن تغيير هذا إلى تحذير.

--dll- مطوّل
- الإسراف [=عدد]
اعرض رقم الإصدار لـ ld وقائمة مضاهاة الرابط
أيد. عرض ملفات الإدخال التي يمكن فتحها ولا يمكن فتحها.
عرض البرنامج النصي للرابط الذي يستخدمه الرابط. إذا كان الخيار
عدد الوسيطة> 1 ، سيتم أيضًا عرض حالة رمز المكون الإضافي.

- النسخة- النصي =الإصدار النصي
حدد اسم إصدار البرنامج النصي للرابط. هذا هو
تستخدم عادةً عند إنشاء مكتبات مشتركة لتحديد ملفات
معلومات حول التسلسل الهرمي للإصدار للمكتبة
مخلوق. هذا الخيار مدعوم بالكامل فقط على منصات ELF
التي تدعم المكتبات المشتركة ؛ يرى VERSION. إنه جزئيا
مدعومة على منصات PE، والتي يمكنها استخدام البرامج النصية للإصدار للتصفية
رؤية الرمز في وضع التصدير التلقائي: أي رموز مميزة محلي in
لن يتم تصدير البرنامج النصي للإصدار.

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

هناك ثلاثة أنواع من الرموز العالمية، موضحة هنا بواسطة C
أمثلة:

مادبا i = 1;
تعريف، والذي يتم إدراجه في قسم البيانات التي تمت تهيئتها في ملف
ملف إلاخراج.

خارجي مادبا i;
مرجع غير محدد، والذي لا يخصص مساحة. هناك
يجب أن يكون إما تعريفًا أو رمزًا مشتركًا للمتغير
في مكان ما.

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

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

1. تحويل رمز مشترك إلى مرجع ، لأن هناك
بالفعل تعريف للرمز.

( ): تحذير: شائع في " "
تم تجاوزه بحكم التعريف
( ): تحذير: محدد هنا

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

( ): تحذير: تعريف ` "
تجاوز المشترك
( ): تحذير: الشائع هنا

3. دمج رمز مشترك مع رمز مشترك سابق بنفس الحجم
رمز.

( ): تحذير: متعدد مشترك
من ` "
( ): تحذير: الشائع السابق هنا

4. دمج رمز مشترك مع رمز مشترك سابق أكبر.

( ): تحذير: شائع في " "
تم تجاوزه بواسطة مشترك أكبر
( ): تحذير: الشائع الأكبر موجود هنا

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

( ): تحذير: شائع في " "
تجاوز المشترك الأصغر
( ): تحذير: الشائع الأصغر موجود هنا

- تحذير المنشئين
تحذير في حالة استخدام أي منشئات عالمية. هذا مفيد فقط ل
عدد قليل من تنسيقات ملفات الكائن. بالنسبة إلى التنسيقات مثل COFF أو ELF ، فإن ملف
رابط لا يمكن الكشف عن استخدام المنشئات العمومية.

--حذير متعدد GP
تحذير إذا كانت هناك حاجة إلى قيم مؤشر عالمية متعددة في الإخراج
ملف. هذا مفيد فقط لبعض المعالجات ، مثل
ألفا. على وجه التحديد ، تضع بعض المعالجات ثوابت كبيرة القيمة
قسم خاص. سجل خاص (المؤشر العام) النقاط
في منتصف هذا القسم ، بحيث يمكن تحميل الثوابت
بكفاءة عبر وضع العنونة النسبي للسجل الأساسي. منذ
يكون التخالف في الأسلوب النسبي للسجل الأساسي ثابتًا نسبيًا
صغير (على سبيل المثال ، 16 بت) ، وهذا يحد من الحجم الأقصى للثابت
حمام سباحة. وبالتالي، في البرامج الكبيرة، غالبا ما يكون من الضروري استخدامها
عدة قيم مؤشر عالمية من أجل أن تكون قادرة على معالجة الكل
الثوابت الممكنة. يؤدي هذا الخيار إلى إصدار تحذير
كلما حدثت هذه الحالة.

- تحذير مرة واحدة
تحذير مرة واحدة فقط لكل رمز غير محدد ، بدلاً من التحذير مرة واحدة لكل رمز
الوحدة التي تشير إليها.

- قسم التحذير - محاذاة
تحذير إذا تم تغيير عنوان قسم الإخراج بسبب
تنسيق. عادة ، سيتم تعيين المحاذاة بواسطة إدخال
قسم. سيتم تغيير العنوان فقط إذا لم يكن ذلك بشكل صريح
محدد؛ أي ، إذا لم يحدد أمر "SECTIONS" ملف
عنوان البداية للقسم.

--حذير مشترك textrel
تحذير إذا قام الرابط بإضافة DT_TEXTREL إلى كائن مشترك.

- تحذير البديل م
تحذير إذا كان الكائن يحتوي على كود بديل لجهاز ELF.

- رموز لم يتم حلها
إذا كان الرابط سيقوم بالإبلاغ عن رمز لم يتم حله (راجع ملف
خيار - رموز غير محلولة) عادةً ما يؤدي إلى حدوث خطأ.
هذا الخيار يجعله ينشئ تحذيرًا بدلاً من ذلك.

- رموز لم يتم حلها خطأ
يؤدي هذا إلى استعادة السلوك الافتراضي للرابط المتمثل في إنشاء الأخطاء
عندما يتم الإبلاغ عن الرموز التي لم يتم حلها.

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

ملاحظتان عند استخدام هذا الخيار من دول مجلس التعاون الخليجي: أولاً ، مجلس التعاون الخليجي لا يعرف
حول هذا الخيار ، لذلك عليك استخدام -Wl ، -آلآرشيف. ثانيا،
لا تنسى أن تستخدم -Wl ، -لا-كامل- أرشيف بعد قائمتك
المحفوظات ، لأن دول مجلس التعاون الخليجي ستضيف قائمة المحفوظات الخاصة بها إلى ملف
وقد لا ترغب في أن تؤثر هذه العلامة على هؤلاء أيضًا.

- التفاف =رمز
استخدم وظيفة المجمع لـ رمز. أي إشارة غير محددة إلى
رمز سيتم حلها على "__التفاف_رمز". أي غير محدد
إشارة إلى "__real_رمز" سوف تحل ل رمز.

يمكن استخدام هذا لتوفير غلاف لوظيفة النظام. ال
يجب تسمية وظيفة الغلاف بـ "__wrap_رمز". إذا كانت ترغب في ذلك
استدعاء وظيفة النظام ، يجب أن استدعاء "__real_رمز".

هذا مثال تافه:

باطل *
__ التفاف_مولوك (الحجم _ ج)
{
printf ("تم استدعاء malloc مع٪ zu \ n"، c)؛
عودة __real_malloc (ج) ؛
}

إذا قمت بربط رمز آخر بهذا الملف باستخدام --لف malloc، ثم كل
المكالمات إلى "malloc" ستستدعي الوظيفة "__wrap_malloc" بدلاً من ذلك.
استدعاء "__real_malloc" في "__wrap_malloc" سوف يستدعي الحقيقي
وظيفة "malloc".

قد ترغب في توفير وظيفة "__real_malloc" أيضًا ، لذلك
الروابط بدون --لف سوف ينجح الخيار إذا فعلت هذا فأنت
يجب عدم وضع تعريف "__real_malloc" في نفس الملف
كـ "__wrap_malloc" ؛ إذا قمت بذلك ، فقد يقوم المجمع بحل المكالمة
قبل أن تتاح للرابط فرصة لفه بـ "malloc".

--eh- الإطار- تقرير التنمية البشرية
طلب إنشاء قسم ".eh_frame_hdr" وELF
رأس المقطع "PT_GNU_EH_FRAME".

--لا يوجد - ولدت - الاسترخاء المعلومات
طلب إنشاء ".eh_frame" معلومات فك الارتباط التي تم إنشاؤها
أقسام التعليمات البرمجية مثل PLT. يتم تشغيل هذا الخيار بشكل افتراضي إذا كان الرابط
يتم دعم معلومات الاسترخاء التي تم إنشاؤها.

--تمكين-جديد- dtags
--تعطيل-جديد-دتاجس
يمكن لهذا الرابط إنشاء علامات ديناميكية جديدة في ELF. ولكن كبار السن
قد لا تفهمها أنظمة ELF. إذا حددت
--تمكين-جديد- dtagsسيتم إنشاء العلامات الديناميكية الجديدة حسب الحاجة
والعلامات الديناميكية الأقدم سيتم حذفها. إذا حددت
--تعطيل-جديد-دتاجسلن يتم إنشاء علامات ديناميكية جديدة. بواسطة
افتراضيًا ، لا يتم إنشاء العلامات الديناميكية الجديدة. لاحظ أن هؤلاء
الخيارات متاحة فقط لأنظمة ELF.

- حجم الهاش =عدد
عيّن الحجم الافتراضي لجداول تجزئة الرابط إلى عدد أولي
على مقربة عدد. زيادة هذه القيمة يمكن أن تقلل من طول
الوقت الذي يستغرقه الرابط لأداء مهامه، على حساب
زيادة متطلبات ذاكرة الرابط. تقليل بالمثل
هذه القيمة يمكن أن تقلل من متطلبات الذاكرة على حساب
سرعة.

- أسلوب هاش =نمط
قم بتعيين نوع جدول (جداول) تجزئة الرابط. نمط يمكن أن يكون إما "sysv"
لقسم ELF الكلاسيكي ".hash"، و"gnu" للنمط الجديد لـ GNU
قسم ".gnu.hash" أو "كلاهما" لكل من ELF الكلاسيكي ".hash" و
نمط جديد من جداول التجزئة GNU ".gnu.hash". الافتراضي هو "sysv".

--أقسام ضغط التصحيح = لا شيء
- ضغط-تصحيح-المقاطع = زليب
--اضغط-تصحيح-المقاطع = زليب-جنو
- ضغط-تصحيح-المقاطع = زليب-جابي
في منصات ELF، تتحكم هذه الخيارات في كيفية تصحيح أخطاء أقسام DWARF
يتم ضغطها باستخدام zlib. --أقسام ضغط التصحيح = لا شيء لا
ضغط أقسام تصحيح DWARF. --اضغط-تصحيح-المقاطع = زليب-جنو
يضغط أقسام تصحيح DWARF ويعيد تسمية أسماء أقسام التصحيح إلى
إبتدئ ب .zdebug بدلا من .تصحيح.
- ضغط-تصحيح-المقاطع = زليب و
- ضغط-تصحيح-المقاطع = زليب-جابي ضغط أقسام تصحيح DWARF
مع SHF_COMPRESSED من ELF ABI. يختلف السلوك الافتراضي
اعتمادًا على الهدف المعني وخيارات التكوين المستخدمة
لبناء سلسلة الأدوات. يمكن تحديد الافتراضي عن طريق الفحص
الإخراج من رابط --مساعدة الخيار.

- تقليل - الذاكرة - النفقات العامة
يقلل هذا الخيار من متطلبات الذاكرة في وقت التشغيل ، في
حساب سرعة الارتباط. تم تقديم هذا لتحديد القديم
خوارزمية O(n^2) لإنشاء ملف خريطة الارتباط، بدلاً من الخوارزمية الجديدة
خوارزمية O (n) التي تستخدم حوالي 40٪ من الذاكرة لتخزين الرموز.

تأثير آخر للمفتاح هو تعيين حجم جدول التجزئة الافتراضي
إلى 1021 ، مما يوفر الذاكرة مرة أخرى بتكلفة إطالة
وقت تشغيل رابط. لا يتم ذلك ولكن إذا كان - حجم الهاش
تم استخدام التبديل.

- تقليل - الذاكرة - النفقات العامة يمكن أيضًا استخدام رمز التبديل للتمكين
المفاضلات الأخرى في الإصدارات المستقبلية من الرابط.

- معرف البناء
- معرف البناء =نمط
اطلب إنشاء قسم ملاحظات ELF ".note.gnu.build-id" أو
قسم COFF ".buildid". محتويات المذكرة فريدة من نوعها
البتات التي تحدد هذا الملف المرتبط. نمط يمكن أن يكون "uuid" لاستخدام 128
بتات عشوائية ، "sha1" لاستخدام تجزئة SHA160 1 بت على المعياري
أجزاء من محتويات الإخراج، "md5" لاستخدام تجزئة MD128 5 بت
الأجزاء المعيارية لمحتويات الإخراج ، أو "0xالسداسية لاستخدام
سلسلة البت المختارة المحددة كرقم زوجي من النظام الست عشري
الأرقام ("-" و ": يتم تجاهل الأحرف الموجودة بين أزواج الأرقام).
If نمط تم حذفه ، يتم استخدام "sha1".

ينتج عن الأنماط "md5" و"sha1" معرفًا دائمًا
هو نفسه في ملف إخراج متطابق ، ولكنه سيكون فريدًا بين الجميع
ملفات الإخراج غير متطابقة. وليس المقصود أن يتم مقارنتها بـ
المجموع الاختباري لمحتويات الملف. قد يتم تغيير ملف مرتبط
لاحقًا بواسطة أدوات أخرى ، لكن سلسلة بت معرف البناء تحدد ملف
الملف الأصلي المرتبط لا يتغير.

تمرير "لا شيء" من أجل نمط تعطيل الإعداد من أي "--build-id"
الخيارات في وقت سابق على سطر الأوامر.

يدعم رابط i386 PE ملفات -مشاركة الخيار الذي يسبب الإخراج
لتكون مكتبة مرتبطة ديناميكيًا (DLL) بدلاً من ملف
تنفيذ. يجب عليك تسمية الإخراج "*.dll" عند استخدام هذا
خيار. بالإضافة إلى ذلك ، فإن الرابط يدعم بشكل كامل المعيار "* .def"
الملفات، والتي يمكن تحديدها في سطر أوامر الرابط مثل الكائن
ملف (في الواقع ، يجب أن يسبق الأرشيفات التي تصدر الرموز منها ، إلى
تأكد من ربطها، تمامًا مثل ملف الكائن العادي).

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

--add-stdcall-alias
في حالة وجود رموز لها لاحقة stdcall (@nn) سيتم تصديرها كـ-
وأيضًا مع تجريد اللاحقة. [هذا الخيار خاص بـ
المنفذ المستهدف i386 PE للرابط]

- ملف أساسي ملف
استعمل ملف كاسم للملف الذي سيتم حفظ العناوين الأساسية فيه
من جميع عمليات النقل اللازمة لإنشاء مكتبات DLL ذات الامتداد dlltool.
[هذا خيار محدد لـ i386 PE]

--dll
قم بإنشاء ملف DLL بدلاً من ملف قابل للتنفيذ عادي. يمكنك أيضًا استخدام ملفات
-مشاركة أو حدد "LIBRARY" في ملف ".def" محدد. [هذا
الخيار خاص بالمنفذ المستهدف i386 PE للرابط]

- تمكين - قسم طويل - أسماء
--تعطيل - قسم طويل - أسماء
تضيف متغيرات PE لتنسيق كائن COFF امتدادًا
يسمح باستخدام أسماء أقسام أطول من ثمانية أحرف ، فإن
الحد الطبيعي لـ COFF افتراضيًا، يُسمح بهذه الأسماء فقط
الكائنات ، حيث إن الصور القابلة للتنفيذ المرتبطة بالكامل لا تحمل الامتداد
جدول سلسلة COFF مطلوب لدعم الأسماء الأطول. باعتبارها جنو
بالامتداد، فمن الممكن السماح باستخدامها في الصور القابلة للتنفيذ
كذلك ، أو (على الأرجح بلا جدوى!) عدم السماح به في الكائن
الملفات ، باستخدام هذين الخيارين. تم إنشاء الصور القابلة للتنفيذ
مع أسماء المقاطع الطويلة هذه تكون غير قياسية إلى حد ما، وتحمل
كما يفعلون في جدول سلسلة ، وقد يولدون مخرجات مربكة عندما
تم فحصها باستخدام أدوات غير متوافقة مع GNU PE، مثل عارض الملفات و
شاحنات قلابة. ومع ذلك، يعتمد GDB على استخدام أسماء المقاطع الطويلة PE
للعثور على أقسام معلومات تصحيح أخطاء Dwarf-2 في صورة قابلة للتنفيذ
في وقت التشغيل، وهكذا إذا لم يتم تحديد أي خيار في الأمر-
خط، ld سيمكن أسماء الأقسام الطويلة ، متجاوزًا الإعداد الافتراضي و
السلوك الصحيح من الناحية الفنية ، عندما يجد وجود التصحيح
المعلومات أثناء ربط صورة قابلة للتنفيذ وعدم تجريدها
حرف او رمز. [هذا الخيار صالح لجميع منافذ PE المستهدفة لـ
رابط]

--enable-stdcall-fixup
--تعطيل-stdcall-fixup
إذا عثر الارتباط على رمز لا يمكنه حله ، فسيحاول
للقيام "ارتباط غامض" من خلال البحث عن رمز آخر محدد
يختلف فقط في تنسيق اسم الرمز (cdecl vs stdcall)
وسيتم حل هذا الرمز من خلال الارتباط بالمباراة. على سبيل المثال،
قد يكون الرمز غير المعرّف "_foo" مرتبطًا بالوظيفة
قد يكون "_foo@12" أو الرمز غير المحدد "_bar@16" مرتبطًا بـ
وظيفة "_bar". عندما يقوم الرابط بذلك، فإنه يطبع تحذيرًا،
نظرًا لأنه كان من المفترض أن يفشل الارتباط عادةً ، ولكن في بعض الأحيان يتم استيراده
قد تحتاج المكتبات التي تم إنشاؤها من ملفات dll التابعة لجهات خارجية إلى هذه الميزة
تكون قابلة للاستخدام. إذا حددت --enable-stdcall-fixup، هذه الميزة
ممكّن بالكامل ولا تتم طباعة التحذيرات. إذا حددت
--تعطيل-stdcall-fixup، يتم تعطيل هذه الميزة وما إلى ذلك
تعتبر حالات عدم التطابق بمثابة أخطاء. [هذا الخيار محدد
إلى المنفذ المستهدف i386 PE للرابط]

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

- تصدير جميع الرموز
إذا تم توفيرها، فسيتم استخدام كافة الرموز العامة في الكائنات لإنشاء ملف DLL
سيتم تصديرها بواسطة DLL. لاحظ أن هذا هو الإعداد الافتراضي إذا
وإلا فلن يكون هناك أي رموز تم تصديرها. عندما تكون الرموز
تم تصديرها بشكل صريح عبر ملفات DEF أو تصديرها ضمنيًا عبر
سمات الوظيفة ، الافتراضي هو عدم تصدير أي شيء آخر
ما لم يتم إعطاء هذا الخيار. لاحظ أن الرموز "DllMain @ 12" ،
سيتم استخدام "DllEntryPoint@0" و"DllMainCRTSStartup@12" و"impure_ptr".
لا يتم تصديرها تلقائيًا. أيضا ، الرموز المستوردة من أخرى
لن يتم إعادة تصدير ملفات DLL، ولن يتم إعادة تصدير الرموز التي تحدد ملفات DLL
التخطيط الداخلي مثل تلك التي تبدأ بـ "_head_" أو تنتهي
بـ "_iname". بالإضافة إلى ذلك ، لا توجد رموز من "libgcc" ، "libstd ++" ،
سيتم تصدير "libmingw32" أو "crtX.o". الرموز أسماؤها
تبدأ بـ "__rtti_" أو "__builtin_" لن يتم تصديرها للمساعدة
مع C ++ DLLs. أخيرًا ، هناك قائمة واسعة من cygwin-
الرموز الخاصة التي لم يتم تصديرها (من الواضح أن هذا ينطبق على
عند إنشاء مكتبات DLL لأهداف cygwin). هذه المستثناة من cygwin هي:
"_cygwin_dll_entry @ 12"، "_cygwin_crt0_common @ 8"،
"_cygwin_noncygwin_dll_entry @ 12"، "_fmode"، "_impure_ptr"،
"cygwin_attach_dll"، "cygwin_premain0"، "cygwin_premain1"،
"cygwin_premain2" و "cygwin_premain3" و "البيئة". [هذا الخيار
خاص بالمنفذ المستهدف i386 PE للرابط]

- استبعاد الرموز رمز,رمز، ...
تحدد قائمة الرموز التي لا ينبغي أن تكون تلقائيًا
تصدير. قد يتم تحديد أسماء الرموز بفواصل أو نقطتين.
[هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
رابط]

- استبعاد جميع الرموز
يحدد عدم تصدير أي رموز تلقائيًا. [هذا
الخيار خاص بالمنفذ المستهدف i386 PE للرابط]

--محاذاة الملف
حدد محاذاة الملف. ستبدأ دائمًا أقسام الملف
في إزاحة الملف وهي مضاعفات هذا الرقم. هذا الافتراضات
إلى 512. [هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
الرابط]

--كومة حجز
--كومة حجز,ارتكاب
حدد عدد بايتات الذاكرة المراد حجزها (واختيارياً
الالتزام) لاستخدامها ككومة لهذا البرنامج. الافتراضي هو 1 ميغا بايت
محفوظة، ملتزمة بدقة 4K. [هذا الخيار خاص بـ i386 PE
المنفذ المستهدف للرابط]

- قاعدة الصورة قيمنا
استعمل قيمنا كعنوان أساسي لبرنامجك أو dll. هذا ال
أدنى موقع للذاكرة التي سيتم استخدامها عند البرنامج أو dll
محمل. لتقليل الحاجة إلى الانتقال وتحسين الأداء
من dlls الخاص بك ، يجب أن يكون لكل منها عنوان أساسي فريد وليس
تتداخل مع أي ملفات dll أخرى. الافتراضي هو 0x400000 للملفات التنفيذية ،
و 0x10000000 لملفات dlls. [هذا الخيار خاص بـ i386 PE
المنفذ المستهدف للرابط]

- قتل في
إذا تم توفير لاحقات stdcall (@nn) من الرموز
قبل تصديرها. [هذا الخيار خاص بـ i386 PE
المنفذ المستهدف للرابط]

- كبير العنوان علم
إذا أعطيت ، فإن البت المناسب في حقل "الخصائص" في
تم تعيين رأس COFF للإشارة إلى أن هذا الملف القابل للتنفيذ يدعم
عناوين افتراضية أكبر من 2 جيجا بايت. يجب أن يستخدم هذا في
بالاقتران مع / 3GB أو / USERVA =قيمنا ميغا بايت التبديل في
قسم "[أنظمة التشغيل]" في BOOT.INI. خلاف ذلك ، هذا الشيء
ليس له أي تأثير. [هذا الخيار خاص بمنافذ PE المستهدفة
الرابط]

--تعطيل - كبير - عنوان مدرك
يعكس تأثير السابق - كبير العنوان علم الخيار.
هذا مفيد إذا كان - كبير العنوان علم يتم تعيينه دائمًا بواسطة
برنامج تشغيل المترجم (على سبيل المثال Cygwin gcc) والملف القابل للتنفيذ لا يفعل ذلك
دعم العناوين الافتراضية أكبر من 2 غيغابايت. [هذا الخيار
خاص بمنافذ PE المستهدفة للرابط]

- نسخة رئيسية صورة قيمنا
يضبط الرقم الرئيسي لـ "إصدار الصورة". افتراضات إلى 1.
[هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
رابط]

--الرئيسية نظام التشغيل الإصدار قيمنا
يضبط الرقم الرئيسي لـ "إصدار نظام التشغيل". الإعدادات الافتراضية إلى 4. [هذا
الخيار خاص بالمنفذ المستهدف i386 PE للرابط]

--الرئيسية-إصدار النظام الفرعي قيمنا
يعيّن الرقم الرئيسي لـ "إصدار النظام الفرعي". افتراضات إلى 4.
[هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
رابط]

- نسخة مصغرة للصورة قيمنا
يضبط الرقم الصغير لـ "إصدار الصورة". افتراضات على 0.
[هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
رابط]

- إصدار نظام التشغيل الثانوي قيمنا
يضبط الرقم الصغير لـ "إصدار نظام التشغيل". الإعدادات الافتراضية إلى 0. [هذا
الخيار خاص بالمنفذ المستهدف i386 PE للرابط]

- إصدار النظام الفرعي الثانوي قيمنا
يضبط الرقم الثانوي لـ "إصدار النظام الفرعي". افتراضات على 0.
[هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
رابط]

- إخراج ناقص ملف
سيقوم الرابط بإنشاء الملف ملف والذي سيحتوي على ملف DEF
المطابق لمكتبة الارتباط الديناميكي (DLL) التي ينشئها الرابط. هذا ملف DEF
(والذي يجب أن يسمى "* .def") يمكن استخدامه لإنشاء استيراد
مكتبة مع "dlltool" أو يمكن استخدامها كمرجع إلى
الرموز المصدرة تلقائيًا أو ضمنيًا. [هذا الخيار
خاص بالمنفذ المستهدف i386 PE للرابط]

- من بين الضمانات ملف
سيقوم الرابط بإنشاء الملف ملف والتي سوف تحتوي على استيراد
lib المطابق لملف DLL الذي يقوم الرابط بإنشائه. هذا الاستيراد
lib (والذي يجب تسميته "* .dll.a" أو "* .a" يمكن استخدامه للربط
عملاء مقابل DLL الذي تم إنشاؤه ؛ هذا السلوك يجعل من الممكن
لتخطي خطوة إنشاء مكتبة استيراد منفصلة "dlltool". [هذا
الخيار خاص بالمنفذ المستهدف i386 PE للرابط]

- تمكين قاعدة الصورة التلقائية
- تمكين قاعدة الصورة التلقائية =قيمنا
اختر تلقائيًا قاعدة الصورة لملفات DLL ، وابدأ التشغيل اختياريًا
مع القاعدة قيمنا، ما لم يتم تحديد واحد باستخدام "--image-base"
دعوى. باستخدام تجزئة تم إنشاؤها من اسم dll لإنشاء
قواعد صور فريدة لكل DLL والتصادمات في الذاكرة و
يتم تجنب عمليات النقل التي يمكن أن تؤخر تنفيذ البرنامج. [هذا
الخيار خاص بالمنفذ المستهدف i386 PE للرابط]

- تعطيل-السيارات-قاعدة الصورة
لا تقم تلقائيًا بإنشاء قاعدة صور فريدة. إذا لم يكن هناك
قاعدة الصور المحددة من قبل المستخدم ("--image-base") ثم استخدم النظام الأساسي
تقصير. [هذا الخيار خاص بالمنفذ المستهدف لـ i386 PE
الرابط]

--dll-search-prefix سلسلة
عند الارتباط ديناميكيًا بـ dll بدون مكتبة استيراد ، ابحث
ل " .dll "في التفضيل على" lib .dll ".
يسمح هذا السلوك بالتمييز السهل بين مكتبات DLL التي تم إنشاؤها لملف
"منصات فرعية" مختلفة: أصلية، وcygwin، وuwin، وpw، وما إلى ذلك
على سبيل المثال، عادةً ما تستخدم ملفات cygwin DLL "--dll-search-prefix=cyg".
[هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
رابط]

- تمكين الاستيراد التلقائي
قم بعمل ربط معقد لـ "_symbol" بـ "__imp__symbol" من أجل DATA
يستورد من مكتبات DLL ، وأنشئ رموز الظهور الضرورية عندما
بناء مكتبات الاستيراد مع عمليات تصدير البيانات هذه. ملاحظة: استخدام
سيؤدي ملحق "الاستيراد التلقائي" إلى ظهور قسم النص في الملف
ملف الصورة ليكون قابلاً للكتابة. هذا لا يتوافق مع PE-
مواصفات تنسيق COFF التي نشرتها Microsoft.

ملاحظة - سيؤدي استخدام ملحق "الاستيراد التلقائي" أيضًا إلى القراءة فقط
البيانات التي يتم وضعها عادةً في قسم .rdata
تم وضعها في قسم البيانات بدلاً من ذلك. هذا من أجل العمل
حول مشكلة الثوابت الموضحة هنا:
http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

إن استخدام "الاستيراد التلقائي" بشكل عام سوف "يعمل فقط" - ولكن في بعض الأحيان لا يمكنك ذلك
قد ترى هذه الرسالة:

لا يمكن استيراد "المتغير" تلقائيًا. الرجاء قراءة
وثائق "--enable-auto-import" الخاصة بـ ld للحصول على التفاصيل."

تظهر هذه الرسالة عندما يصل بعض التعبير (الفرعي) إلى عنوان ما
يتم الحصول عليها في النهاية من خلال مجموع ثابتين (جداول استيراد Win32
السماح بواحد فقط). تشمل الحالات التي قد يحدث فيها هذا عمليات الوصول
إلى حقول الأعضاء لمتغيرات البنية المستوردة من DLL أيضًا
مثل استخدام فهرس ثابت في متغير مصفوفة مستورد من a
DLL. يجوز لأي متغير متعدد الكلمات (مصفوفات ، هياكل ، طويلة ، إلخ)
تشغيل حالة الخطأ هذه. ومع ذلك، بغض النظر عن الدقيق
نوع بيانات المتغير المُصدَّر المخالف ، سيكتشف ld دائمًا
، وإصدار التحذير ، والخروج.

هناك عدة طرق لمعالجة هذه الصعوبة، بغض النظر
نوع بيانات المتغير المُصدَّر:

إحدى الطرق هي استخدام مفتاح --enable-runtime-pseudo-reloc. هذه الأوراق
مهمة تعديل المراجع في كود العميل الخاص بك لوقت التشغيل
البيئة، لذلك تعمل هذه الطريقة فقط في بيئة وقت التشغيل
يدعم هذه الميزة.

الحل الثاني هو إجبار أحد "الثوابت" على أن يكون أ
متغير - أي غير معروف وغير قابل للتحسين في وقت الترجمة.
بالنسبة للمصفوفات، هناك احتمالان: أ) جعل الفهرس (
عنوان المصفوفة) متغيرًا، أو ب) قم بإنشاء الفهرس "الثابت" أ
عامل. هكذا:

نوع خارجي extern_array [] ؛
extern_array [1] ->
{النوع المتطاير * t = extern_array ؛ ر [1]}

or

نوع خارجي extern_array [] ؛
extern_array [1] ->
{متطاير int t = 1 ؛ extern_array [t]}

للبنيات (ومعظم أنواع البيانات المتعددة الكلمات الأخرى) الخيار الوحيد
هو جعل البنية نفسها (أو الطويلة، أو ...)
المتغير:

الهيكل الخارجي s extern_struct ؛
extern_struct.field ->
{متغير البنية s * t = & extern_struct؛ t-> حقل}

or

extern_ll طويل طويل خارجي ؛
extern_ll ->
{متطاير طويل * local_ll = & extern_ll؛ * local_ll}

الطريقة الثالثة للتعامل مع هذه الصعوبة هي التخلي
"استيراد تلقائي" للرمز المخالف ووضع علامة عليه
"__declspec(dllimport)". ومع ذلك، في الممارسة العملية يتطلب استخدام
compile-time #defines للإشارة إلى ما إذا كنت تقوم ببناء DLL ،
بناء رمز العميل الذي سيرتبط بـ DLL ، أو فقط
بناء / ربط مكتبة ثابتة. في اتخاذ الاختيار
بين الطرق المختلفة لحل "العنوان المباشر مع".
مشكلة الإزاحة الثابتة ، يجب أن تفكر في العالم الحقيقي النموذجي
الاستعمال:

الأصل:

- foo.h
خارجي int arr [] ؛
--foo.c
# تضمين "foo.h"
void main (int argc، char ** argv) {
printf ("٪ d \ n"، arr [1]) ؛
}

1 الحل:

- foo.h
خارجي int arr [] ؛
--foo.c
# تضمين "foo.h"
void main (int argc، char ** argv) {
/ * هذا الحل هو من أجل win32 و cygwin؛ لا تقم "بالتحسين" * /
متقلبة int * parr = arr ؛
printf ("٪ d \ n"، parr [1]) ؛
}

2 الحل:

- foo.h
/ * ملاحظة: التصدير التلقائي مفترض (لا __declspec (dllexport)) * /
#if (مُعرَّفة (_WIN32) || مُعرَّفة (__ CYGWIN__)) &&
! (المعرفة (FOO_BUILD_DLL) || المعرفة (FOO_STATIC))
#define FOO_IMPORT __declspec (dllimport)
#else
#تعريف FOO_IMPORT
#endif
خارجي FOO_IMPORT int arr [] ؛
--foo.c
# تضمين "foo.h"
void main (int argc، char ** argv) {
printf ("٪ d \ n"، arr [1]) ؛
}

الطريقة الرابعة لتجنب هذه المشكلة هي إعادة ترميز مكتبتك إلى
استخدام واجهة وظيفية بدلاً من واجهة بيانات لـ
المتغيرات المسيئة (على سبيل المثال set_foo () و get_foo () استرجاع
المهام). [هذا الخيار خاص بالمنفذ المستهدف i386 PE
من الرابط]

- تعطيل استيراد السيارات
لا تحاول إجراء ربط معقد لـ "_symbol" بـ
"__imp__symbol" لاستيراد البيانات من مكتبات DLL. [هذا الخيار
خاص بالمنفذ المستهدف i386 PE للرابط]

- تمكين-وقت التشغيل-نقل زائفة
إذا كانت التعليمات البرمجية الخاصة بك تحتوي على تعبيرات موصوفة في --enable-auto-import
القسم، أي استيراد البيانات من DLL بإزاحة غير صفرية، هذا
سينشئ رمز التبديل متجهًا لـ "عمليات النقل الزائفة في وقت التشغيل".
يمكن استخدامها من قبل بيئة وقت التشغيل لضبط المراجع لمثل هذا
البيانات في رمز العميل الخاص بك. [هذا الخيار خاص بـ i386 PE
المنفذ المستهدف للرابط]

--تعطيل-وقت التشغيل- pseudo-reloc
لا تقم بإنشاء عمليات نقل زائفة لواردات بيانات الإزاحة غير الصفرية
من مكتبات الارتباط الحيوي (DLL). [هذا الخيار خاص بالمنفذ المستهدف i386 PE
من الرابط]

- تمكين اضافية pe التصحيح
إظهار معلومات التصحيح الإضافية المتعلقة بتقسيم رمز الاستيراد التلقائي.
[هذا الخيار خاص بالمنفذ المستهدف i386 PE لـ
رابط]

- محاذاة القسم
يضبط محاذاة القسم. ستبدأ دائمًا أقسام الذاكرة
في العناوين التي هي من مضاعفات هذا الرقم. افتراضات إلى
0x1000. [هذا الخيار خاص بمنفذ i386 PE المستهدف
الرابط]

--كومة حجز
--كومة حجز,ارتكاب
حدد عدد بايتات الذاكرة المراد حجزها (واختيارياً
الالتزام) لاستخدامه كمكدس لهذا البرنامج. الافتراضي هو 2 ميغابايت
محفوظة، ملتزمة بدقة 4K. [هذا الخيار خاص بـ i386 PE
المنفذ المستهدف للرابط]

--النظام الفرعي التي
--النظام الفرعي التي:رائد
--النظام الفرعي التي:رائد.قاصر
يحدد النظام الفرعي الذي سيتم تنفيذ برنامجك بموجبه. ال
القيم القانونية لـ التي هي "أصلية" ، "windows" ، "وحدة التحكم" ، "posix" ،
و"إكس بوكس". يمكنك اختياريًا تعيين إصدار النظام الفرعي أيضًا.
يتم أيضًا قبول القيم الرقمية لـ التي. [هذا الخيار
خاص بالمنفذ المستهدف i386 PE للرابط]

تقوم الخيارات التالية بتعيين العلامات في الحقل "DllCharacteristics".
من رأس ملف PE: [هذه الخيارات خاصة بـ PE المستهدف
موانئ الرابط]

- إنتروبيا عالية
الصورة متوافقة مع التوزيع العشوائي لتخطيط مساحة العنوان 64 بت
(ASLR).

- قاعدة ديناميكية
قد يتم نقل عنوان قاعدة الصورة باستخدام تخطيط مساحة العنوان
العشوائية (ASLR). تم تقديم هذه الميزة مع نظام التشغيل MS Windows
فيستا لأهداف i386 PE.

- forceinteg
يتم فرض عمليات التحقق من سلامة الكود.

--nxcompat
الصورة متوافقة مع منع تنفيذ البيانات. هذا
تم تقديم الميزة مع MS Windows XP SP2 لأهداف i386 PE.

- لا العزلة
بالرغم من أن الصورة تفهم العزل ، لا تقم بعزل الصورة.

- لا سيه
الصورة لا تستخدم SEH. لا يجوز استدعاء أي معالج SE من هذا
صورة.

- لا ربط
لا تربط هذه الصورة.

--wdmdriver
يستخدم برنامج التشغيل MS Windows Driver Model.

- توعية
الصورة تدرك Terminal Server.

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

يستخدم هدف C6X uClinux تنسيقًا ثنائيًا يسمى DSBT لدعمه
مكتبات مشتركة. يجب أن تحتوي كل مكتبة مشتركة في النظام على ملف
مؤشر فريد تستخدم كافة الملفات التنفيذية فهرس 0.

- حجم dsbt الأحجام
يحدد هذا الخيار عدد الإدخالات في DSBT للتيار
مكتبة قابلة للتنفيذ أو مشتركة ل الأحجام. الافتراضي هو إنشاء
جدول مع إدخالات 64.

- dsbt- الفهرس مؤشر
يقوم هذا الخيار بتعيين فهرس DSBT للملف الحالي القابل للتنفيذ أو المشترك
مكتبة ل مؤشر. الافتراضي هو 0 ، وهو مناسب ل
توليد الملفات التنفيذية. إذا تم إنشاء مكتبة مشتركة بامتداد
فهرس DSBT الخاص بـ 0 ، يتم نسخ عمليات إعادة الترجيح "R_C6000_DSBT_INDEX" إلى
ملف الإخراج.

--لا يوجد دمج-exidx- مداخل التبديل يعطل دمج
إدخالات exidx المجاورة في معلومات فك الإطار.

تدعم الوصلات 68HC11 و 68HC12 خيارات محددة للتحكم في
بنك الذاكرة تبديل رسم الخرائط وتوليد كود الترامبولين.

--لا الترامبولين
هذا الخيار يعطل توليد الترامبولين. بشكل افتراضي
يتم إنشاء الترامبولين لكل وظيفة بعيدة تسمى الاستخدام
تعليمة "jsr" (يحدث هذا عندما يشير المؤشر إلى وظيفة بعيدة
مأخوذ).

- نافذة البنك الاسم
يشير هذا الخيار للرابط إلى اسم منطقة الذاكرة
في ال الذاكرة المواصفات التي تصف نافذة بنك الذاكرة.
يتم بعد ذلك استخدام تعريف هذه المنطقة بواسطة الرابط للحساب
الترحيل والعناوين داخل نافذة الذاكرة.

يتم دعم الخيارات التالية للتحكم في التعامل مع GOT
الجيل عند الارتباط بأهداف 68 ألفًا.

- حصلت =نوع
يخبر هذا الخيار الرابط الذي يستخدمه مخطط توليد GOT.
نوع يجب أن تكون واحدة من عزباء, سلبي, مولتيغوت or الهدف. إلى
مزيد من المعلومات تشير إلى إدخال المعلومات لـ ld.

يتم دعم الخيارات التالية للتحكم في تعليمات microMIPS
الجيل عند الارتباط بأهداف MIPS.

--insn32
- لا insn32
تتحكم هذه الخيارات في اختيار تعليمات microMIPS المستخدمة في
التعليمات البرمجية التي تم إنشاؤها بواسطة الرابط، مثل تلك الموجودة في PLT أو Lazy
بذرة ملزمة، أو في الاسترخاء. لو --insn32 ، ثم
رابط يستخدم فقط ترميزات تعليمات 32 بت. بشكل افتراضي أو إذا
- لا insn32 يتم استخدام جميع ترميزات التعليمات، بما في ذلك
16 بت منها حيثما أمكن ذلك.

البيئة


يمكنك تغيير سلوك ld مع متغيرات البيئة
"GNUTARGET" و "LDEMULATION" و "COLLECT_NO_DEMANGLE".

يحدد "GNUTARGET" تنسيق كائن ملف الإدخال إذا لم تستخدمه -b
(أو مرادفه --صيغة). يجب أن تكون قيمته أحد أسماء BFD
لتنسيق الإدخال. إذا لم يكن هناك "GNUTARGET" في البيئة ، ld
يستخدم الشكل الطبيعي للهدف. إذا تم ضبط "GNUTARGET" على
"افتراضي" ثم يحاول BFD اكتشاف تنسيق الإدخال عن طريق الفحص
ملفات الإدخال الثنائية ؛ غالبًا ما تنجح هذه الطريقة ، ولكن هناك إمكانات
الغموض، إذ لا توجد طريقة للتأكد من الرقم السحري
المستخدمة لتحديد تنسيقات ملفات الكائن فريدة من نوعها. ومع ذلك ، فإن
إجراءات التكوين لـ BFD على كل نظام تضع الطريقة التقليدية
لهذا النظام أولاً في قائمة البحث ، لذا فإن الغموض موجود
حلت لصالح الاتفاقية.

تحدد "LDEMULATION" المحاكاة الافتراضية إذا لم تستخدم ملف -m
خيار. يمكن أن تؤثر المحاكاة على جوانب مختلفة من سلوك الرابط ،
وخاصة البرنامج النصي رابط الافتراضي. يمكنك سرد المتاحة
مضاهاة مع - الإسراف or -V والخيارات. إذا كان -m الخيار ليس كذلك
المستخدمة ، ولم يتم تعريف متغير البيئة "LDEMULATION" ، و
تعتمد المحاكاة الافتراضية على كيفية تكوين الرابط.

عادةً ، سيتحول الرابط افتراضيًا إلى رموز فك التشابك. ومع ذلك، إذا
تم تعيين "COLLECT_NO_DEMANGLE" في البيئة ، ثم سيتم تعيينها افتراضيًا
لعدم تشويه الرموز يتم استخدام متغير البيئة هذا في ملف
بطريقة مماثلة من خلال برنامج غلاف الرابط "gcc". قد الافتراضي
يتم تجاوزها بواسطة - تفكيك و --لا ديانجلي خيارات.

استخدم i686-linux-gnu-ld عبر الإنترنت باستخدام خدمات onworks.net



أحدث برامج Linux و Windows عبر الإنترنت