Skip to main content

دينار تنسيق ثنائي - خيارات


هل لدى أي شخص فكرة عن كيفية تجميع أي ملف مورد بشكل ثابت إلى الملف القابل للتنفيذ أو ملف المكتبة المشتركة باستخدام دول مجلس التعاون الخليجي على سبيل المثال إد مثل إضافة ملفات الصور التي لم تتغير (وإذا فعلت ذلك، يجب أن يكون إد استبدال الملف على أي حال) ولن تريد لهم أن يكمن حولها في نظام الملفات. إذا كان هذا ممكنا (وأعتقد أنه لأن فيسوال C ل ويندوز يمكن القيام بذلك أيضا)، كيف يمكنني تحميل الملفات التي يتم تخزينها في الثنائية الخاصة هل التحليل القابل للتنفيذ نفسه، والعثور على ملف واستخراج البيانات من فإنه ربما يكون خيارا لدول مجلس التعاون الخليجي الأول الذي لم يراه بعد. استخدام محركات البحث لم يبصقون حقا الاشياء الصحيحة. أنا بحاجة إلى هذا للعمل من أجل المكتبات المشتركة و إلف العاديين التنفيذيين. أي مساعدة هي موضع تقدير يعطي شيئا مثل: للتوافق مع رمز آخر يمكنك ثم استخدام إما فموبوبين للحصول على كائن فيل منتظم، أو بدلا من ذلك ستد :: سترينغستريم لجعل يوستريم. ستد :: سترينغستريم ليست كبيرة لهذا على الرغم من ويمكنك بالطبع استخدام مجرد مؤشر في أي مكان يمكنك استخدام التكرار. إذا كنت تستخدم هذا مع أوتوماك لا ننسى لتعيين بيلتسورسز بشكل مناسب. الشيء الجميل عن القيام بذلك بهذه الطريقة هو: يمكنك الحصول على نص خارج، لذلك يمكن أن يكون في التحكم في الإصدار والتصحيح بشكل معقول ومن المحمولة ومحددة جيدا على كل منصة أجاب 1 فبراير 11 في 16:04 تحديث لقد نمت لتفضل السيطرة جون ريبليس التجمع. incbin الحل القائم على العروض والآن استخدام البديل على ذلك. لقد استخدمت أوبجكوبي (غنو بينوتيلز) لربط البيانات الثنائية من ملف فو-data. bin في قسم البيانات من القابل للتنفيذ: وهذا يعطيك ملف الكائنات فو-data. o التي يمكنك ربطها في التنفيذ الخاص بك. واجهة C تبدو وكأنها حتى تتمكن من القيام بأشياء مثل إذا كان العمارة الهدف الخاص بك لديه قيود خاصة حيث حيث يتم تخزين البيانات الثابتة والمتغيرة، أو كنت ترغب في تخزين تلك البيانات في الجزء. text لجعلها تناسب نفس نوع الذاكرة كما رمز البرنامج الخاص بك، يمكنك أن تلعب مع المعلمات أوبجكوبي بعض أكثر من ذلك. أجاب 1 فبراير 11 في 16:36 فكرة جيدة في حالتي it39s ليست مفيدة جدا. ولكن هذا شيء I39m حقا ستعمل وضعت في بلدي مقتطف جمع. شكرا لتقاسم هذا نداش أتموكريتيونس فبراير 1 11 في 18:04 It39s أسهل قليلا لاستخدام لد كما هو ضمنا تنسيق الإخراج هناك، انظر stackoverflowa4158997201725. نداش جان هوديك مارس 11 14 في 18:40 يمكنك تضمين الملفات الثنائية في قابل للتنفيذ باستخدام لد رابط. على سبيل المثال، إذا كان لديك ملف foo. bar ثم يمكنك تضمينه في قابل للتنفيذ إضافة الأوامر التالية إلى لد إذا كنت استدعاء لد من خلال غك ثم سوف تحتاج إلى إضافة - Wl هنا --formatbinary يروي رابط أن الملف التالي هو ثنائي و - فورماتدفولت التبديل مرة أخرى إلى تنسيق الإدخال الافتراضي (وهذا هو مفيد إذا قمت بتحديد ملفات الإدخال الأخرى بعد foo. bar). ثم يمكنك الوصول إلى محتوى الملف الخاص بك من التعليمات البرمجية: وهناك أيضا رمز اسمه بيناريفوبارزيزي. أعتقد أنه من نوع إينتبترت ولكن لم تحقق ذلك. كنت مؤخرا بحاجة إلى تضمين ملف في ملف قابل للتنفيذ. منذ إم تعمل في سطر الأوامر مع غك، وآخرون وليس مع أداة راد يتوهم أن يجعل كل شيء يحدث سحرية لم يكن واضحا على الفور بالنسبة لي كيفية جعل هذا يحدث. وهناك قليلا من البحث على شبكة الإنترنت وجدت الإختراق لقط أساسا على نهاية للتنفيذ ثم فك حيث كان يقوم على مجموعة من المعلومات لم أكن أريد أن أعرف عن. يبدو مثل هناك يجب أن يكون وسيلة أفضل. وهناك، أوبجكوبي إلى الإنقاذ. يقوم أوبجكوبي بتحويل ملفات الكائن أو الملفات التنفيذية من تنسيق إلى آخر. أحد التنسيقات التي يفهمها هو ثنائي، وهو بشكل أساسي أي ملف ليس في أحد التنسيقات الأخرى التي يفهمها. لذلك ربما كنت تصور فكرة: تحويل الملف الذي نريد تضمينه في ملف كائن، ثم يمكن ببساطة أن تكون مرتبطة في مع بقية التعليمات البرمجية لدينا. لنفترض أن لدينا اسم الملف data. txt الذي نريد تضمينه في برنامجنا القابل للتنفيذ: لتحويل هذا إلى ملف كائن يمكننا ربطه مع برنامجنا نقوم فقط باستخدام أوبجكوبي لإنتاج ملف. o: هذا يخبر أوبجكوبي أن إدخالنا الملف في تنسيق ثنائي، أن ملف الإخراج لدينا يجب أن يكون في تنسيق elf32-i386 (ملفات الكائن على x86). الخيار - binary الهندسة المعمارية يقول أوبجكوبي أن ملف الإخراج المقصود تشغيل على x86. هذا مطلوب بحيث لد سوف يقبل الملف لربط مع الملفات الأخرى ل x86. يمكن للمرء أن يعتقد أن تحديد تنسيق الإخراج كما elf32-i386 يعني هذا، لكنه لا. الآن أن لدينا ملف الكائن نحن بحاجة فقط لتشمل ذلك عندما نقوم بتشغيل الرابط: عندما نقوم بتشغيل النتيجة نحصل على الصلاة من أجل الإخراج: بالطبع، أنا هافنت قال القصة كلها حتى الآن، ولا يظهر لك main. c. عندما يقوم أوبجكوبي بالتحويل أعلاه يضيف بعض رموز الارتباط إلى ملف الكائن المحول: بعد الربط، تحدد هذه الرموز بداية ونهاية الملف المضمن. يتم تشكيل أسماء الرموز عن طريق الإيداع المسبق الثنائي وإلحاق بداية أو إنهاء اسم الملف. إذا كان اسم الملف يحتوي على أي أحرف غير صالحة في اسم رمز يتم تحويلها إلى سفلية (على سبيل المثال data. txt يصبح داتاكست). إذا كنت تحصل على أسماء لم يتم حلها عند ربط باستخدام هذه الرموز، قم بإجراء هيكسدومب - C على ملف الكائن والنظر في نهاية تفريغ الأسماء التي تم اختيار أوبجكوبي. يجب أن تكون التعليمات البرمجية للاستخدام الفعلي للملف المضمن الآن واضحة بشكل معقول: أحد الأمور الهامة والدقيقة التي يجب ملاحظتها هي أن الرموز تضاف إلى متغيرات ملف إرنت الكائن. أنها لا تحتوي على أي بيانات، بدلا من ذلك، عنوانهم هو قيمتها. وأعلنها كنوع شار لأنه ملائم لهذا المثال: البيانات المضمنة هي بيانات الأحرف. ومع ذلك، يمكن أن تعلن لهم أي شيء، كما إنت إذا كانت البيانات عبارة عن مجموعة من الأعداد الصحيحة، أو كما فوبارت هيكل إذا كانت البيانات أي صفيف من أشرطة فو. إذا كانت البيانات المضمنة ليست موحدة، ثم شار هو على الأرجح الأكثر ملاءمة: تأخذ عنوانها ويلقي المؤشر إلى النوع الصحيح كما كنت اجتياز البيانات. أجاب إجابة 1 20 11 في 20: 39Linux و أونيكس لد الأمر لد يجمع بين عدد من الملفات الكائن والأرشيف، ونقل البيانات الخاصة بهم ويربط مراجع الرمز. وعادة ما تكون الخطوة الأخيرة في تجميع البرنامج هي تشغيل لد. لد يقبل لينكر كوماند لانغواد الملفات المكتوبة في مجموعة فرعية من أتامبت s لينك إديتور صيغة لغة الأوامر، لتوفير السيطرة الصريحة والمجمعة على عملية الربط. للحصول على تفاصيل كاملة عن لغة الأمر لد، راجع صفحة معلومات لد. هنا، تغطية جيدا لمحة عامة عن كيفية استخدام غنو لد، والذي يستخدم في معظم إصدارات لينكس. يستخدم هذا الإصدار من لد مكتبات بفد للأغراض العامة للعمل على ملفات الكائنات. وهذا يسمح لد لقراءة، والجمع، وكتابة ملفات الكائن في العديد من الأشكال المختلفة: على سبيل المثال، كوف أو a. out. قد يتم ربط صيغ مختلفة معا لإنتاج أي نوع متاح من ملف الكائن. وبصرف النظر عن مرونته، رابط غنو هو أكثر فائدة من غيرها من لينكرس في توفير المعلومات التشخيصية. العديد من لينكرز التخلي عن التنفيذ فورا عند مواجهة خطأ كلما كان ذلك ممكنا، ود تنفيذ مستمر، مما يسمح لك لتحديد أخطاء أخرى (أو، في بعض الحالات، للحصول على ملف الإخراج على الرغم من الخطأ). و غنو رابط لد يهدف إلى تغطية مجموعة واسعة من الحالات، وأن تكون متوافقة قدر الإمكان مع روابط أخرى. ونتيجة لذلك، لديك العديد من الخيارات للتحكم في سلوكه. رابط يدعم العديد من خيارات سطر الأوامر، ولكن في الممارسة الفعلية يتم استخدام عدد قليل منها في أي سياق معين. على سبيل المثال، الاستخدام المتكرر لل لد هو ربط ملفات كائن يونكس القياسية على نظام يونكس قياسي معتمد. على هذا النظام، لربط ملف hello. o: هذا يروي لد لإنتاج ملف يسمى الإخراج نتيجة لربط libcrt0.o الملف مع hello. o ومكتبة libc. a، والتي سوف تأتي من البحث القياسية الدلائل. راجع الخيار - l أدناه. قد يتم تحديد بعض خيارات سطر الأوامر إلى لد في أي نقطة في سطر الأوامر. ومع ذلك، فإن الخيارات التي تشير إلى الملفات، مثل - l أو - T. يؤدي إلى قراءة الملف عند النقطة التي يظهر فيها الخيار في سطر الأوامر، نسبة إلى ملفات الكائنات وخيارات الملف الأخرى. إن تكرار خيارات عدم الملف مع وسيطة مختلفة لن يكون له أي تأثير آخر، أو تجاوز مرات سابقة (تلك التي تظهر إلى اليسار على سطر الأوامر) من هذا الخيار. ويشار إلى الخيارات التي يمكن تحديدها بشكل مفيد أكثر من مرة في الأوصاف أدناه. وسيطات غير الخيار هي ملفات الكائنات أو المحفوظات التي سيتم ربطها معا. قد تتبع أو تسبق أو تكون مختلطة مع خيارات سطر الأوامر، إلا أنه قد لا يتم وضع وسيطة ملف كائن بين خيار ووسيطه. وعادة ما يتم استدعاء الرابط بملف كائن واحد على الأقل، ولكن يمكنك تحديد أشكال أخرى من ملفات الإدخال الثنائي باستخدام - l. - R. ولغة الأمر النصي. إذا لم يتم تحديد أية ملفات إدخال ثنائية على الإطلاق، فإن الرابط لا ينتج أي إخراج، ويصدر الرسالة لا توجد ملفات الإدخال. إذا كان الرابط لا يمكن التعرف على تنسيق ملف كائن، فإنه سوف نفترض أنه برنامج نصي لينكر. ويؤدي النص البرمجي المحدد بهذه الطريقة إلى زيادة النص البرمجي لينكر الرئيسي المستخدم للرابط (إما النص البرمجي للرابط الافتراضي أو النص المحدد باستخدام - T). تسمح هذه الميزة رابط الارتباط ضد ملف الذي يبدو كائن أو أرشيف. ولكن في الواقع مجرد تعريف بعض قيم الرمز، أو يستخدم إنبوت أو غروب لتحميل الكائنات الأخرى. تحديد البرنامج النصي بهذه الطريقة مجرد تقريب البرنامج النصي لينكر الرئيسي، مع الأوامر الإضافية وضعت بعد البرنامج النصي الرئيسي استخدام الخيار - T لاستبدال البرنامج النصي رابط الافتراضي تماما، ولكن لاحظ تأثير الأمر إنزيرت. بالنسبة للخيارات التي تكون أحرفها حرف واحد، يجب أن تتبع وسيطات الخيار إما حرف الخيار بدون مسافة بيضاء للتدخل. أو أن تعطى كحجج منفصلة مباشرة بعد الخيار الذي يتطلبها. بالنسبة للخيارات التي تكون أحرفها أحرفا متعددة، يمكن أن تسبق أي شرطة واحدة أو اثنتين اسم الخيار على سبيل المثال، - trace-سيمبل و - trace-سيمبول مكافئان. لاحظ أن هناك استثناء واحد لهذه القاعدة: خيارات حرف متعددة تبدأ بحالة صغيرة o يمكن أن يسبقها شرطان فقط. هذا هو للحد من الارتباك مع الخيار - o. لذلك على سبيل المثال - magic يحدد اسم ملف الإخراج إلى السحر في حين --omagic يحدد علم نماجيك على الإخراج. يجب أن يتم فصل الوسيطات إلى خيارات متعددة الأحرف من اسم الخيار بواسطة علامة متساوية، أو يتم منحها كوسيطات منفصلة مباشرة بعد الخيار الذي يتطلبها. على سبيل المثال، --trace رمز فو و - تريس-سيمبولفو ما يعادلها. يتم قبول الاختصارات الفريدة لأسماء الخيارات متعددة الأحرف. لاحظ أنه إذا تم استدعاء الرابط بشكل غير مباشر، عن طريق برنامج تشغيل برامج التحويل البرمجي (على سبيل المثال غك)، فيجب أن تكون مسبقة خيارات سطر الأوامر لينكر بواسطة - Wl. (أو كل ما هو مناسب لبرنامج تشغيل مترجم معين) مثل هذا: هذا مهم، وإلا برنامج برنامج التحويل البرمجي المجمع قد إسقاط بصمت خيارات رابط، مما أدى إلى ارتباط سيئة. قد يحدث الارتباك أيضا عند تمرير الخيارات التي تتطلب قيم من خلال برنامج تشغيل، حيث أن استخدام مسافة بين الخيار والحجة بمثابة فاصل، ويتسبب في تمرير برنامج التشغيل فقط الخيار إلى الوسيطة والوسيط إلى المترجم. في هذه الحالة، من الأسهل استخدام الأشكال التي تم ضمها لكل من الخيارات أحادية ومتعددة الأحرف، مثل: هنا جدول مفاتيح تبديل سطر الأوامر العامة المقبولة بواسطة رابط غنو: اقرأ خيارات سطر الأوامر من الملف. يتم إدراج الخيارات قراءة بدلا من الخيار الملف الأصلي. إذا كان الملف غير موجود، أو لا يمكن قراءته، ثم سيتم التعامل مع الخيار حرفيا، وعدم إزالتها. يتم فصل الخيارات الموجودة في الملف بمسافة بيضاء. قد يتم تضمين حرف مسافة بيضاء في خيار عن طريق إحاطة الخيار بأكمله إما في علامات اقتباس مفردة أو مزدوجة. يمكن تضمين أي حرف (بما في ذلك شرطة مائلة للخلف) عن طريق إضفاء الطابع المسبق على الحرف المراد تضمينه مع شرطة مائلة للخلف. قد يحتوي الملف نفسه على خيارات ملف إضافية، أي معالجة مثل هذه الخيارات بشكل متكرر. ويدعم هذا الخيار لتوافق هب-أوكس. يجب أن تكون وسيطة الكلمة الرئيسية واحدة من أرشيف السلاسل. تمت مشاركتها. أو الافتراضي. - Aarchive هو ما يعادل وظيفيا ل - Bstatic. والكلمتان الرئيسيتان الآخرتان تعادلان وظيفيا - Bdynamic. يمكن استخدام هذا الخيار في أي عدد من المرات. إضافة أوديتليب إلى إدخال دتوديت من المقطع الديناميكي. أوديتليب لم يتم التحقق من وجودها، كما أنها لن تستخدم دتسونام المحدد في المكتبة. إذا كان محددا عدة مرات سوف يحتوي دتوديت على قائمة مفصولة من واجهات التدقيق القولون للاستخدام. إذا وجد لينكر كائن مع إدخال التدقيق أثناء البحث عن مكتبات مشتركة، فإنه سيتم إضافة إدخال دتدبوديت المقابلة في ملف الإخراج. هذا الخيار مفيد فقط على منصات إلف دعم واجهة رتلد التدقيق. في الإصدار الحالي من لد. وهذا الخيار هو مفيد فقط لعائلة إنتل 960 من الأبنية. في هذا التكوين لد، تحدد حجة العمارة بنية معينة في الأسرة 960، مما يتيح بعض الضمانات وتعديل مسار البحث مكتبة الأرشيف. الإصدارات المستقبلية من لد قد تدعم وظائف مماثلة لأسر الهندسة المعمارية الأخرى. قد يتم تكوين لد لدعم أكثر من نوع واحد من ملف الكائن. إذا تم تكوين لد الخاص بك بهذه الطريقة، يمكنك استخدام الخيار - b لتحديد تنسيق ثنائي لملفات كائن الإدخال التي تتبع هذا الخيار على سطر الأوامر. حتى عندما يتم تكوين لد لدعم تنسيقات الكائنات البديلة، لا تحتاج عادة لتحديد هذا، كما يجب أن يتم تكوين لد لتوقع شكل تنسيق الإدخال الافتراضي التنسيق الأكثر شيوعا على كل جهاز. إنبوت-فورمات عبارة عن سلسلة نصية، اسم تنسيق معين تدعمه مكتبات بفد. يمكنك سرد الأشكال الثنائية المتاحة مع أوبجدومب - i. قد تحتاج إلى استخدام هذا الخيار إذا كنت تقوم بربط الملفات بتنسيق ثنائي غير عادي. يمكنك أيضا استخدام - b لتحويل الصيغ بشكل صريح (عند ربط ملفات الكائن بتنسيقات مختلفة)، من خلال تضمين - b تنسيق الإدخال قبل كل مجموعة من ملفات الكائن بتنسيق معين. يتم أخذ التنسيق الافتراضي من متغير البيئة غنوتارجيت. يمكنك أيضا تحديد تنسيق الإدخال من نص برمجي، باستخدام الأمر تارجيت من أجل التوافق مع الروابط التي تنتجها التصوير بالرنين المغناطيسي، يقبل لد ملفات النصي المكتوبة بلغة بديلة مقيدة، موصوفة في قسم ملفات النصوص البرمجية المتوافقة بالرنين المغناطيسي من وثائق غنو لد. إدخال ملفات النصي بالرنين المغناطيسي مع الخيار - c استخدام الخيار - T لتشغيل البرامج النصية لينكر مكتوبة في لغة البرمجة العامة للأغراض العامة. إذا لم يكن موجي-ممدفيل موجودا، لد يبحث عنه في الدلائل المحددة من قبل أي - L الخيارات. هذه الخيارات الثلاثة هي أشكال متعددة مكافئة معتمدة للتوافق مع لينكرز أخرى. وهي تعين مساحة للرموز المشتركة حتى لو تم تحديد ملف ناتج قابل لإعادة التوزيع (مع - r). الأمر سكريبت فورسيكومونالوكاشيون له نفس التأثير. إضافة أوديتليب إلى إدخال دتيبوديت من القسم الديناميكي. أوديتليب لم يتم التحقق من وجودها، كما أنها لن تستخدم دتسونام المحدد في المكتبة. إذا كان محددا عدة مرات سوف دتيديبوديت تحتوي على قائمة فصل فصل القولون واجهات التدقيق للاستخدام. هذا الخيار مفيد فقط على منصات إلف دعم واجهة رتلد التدقيق. يتم توفير الخيار - P لتوافق سولاريس. استخدم الإدخال كرمز صريح لبدء تنفيذ البرنامج، بدلا من نقطة الإدخال الافتراضية. إذا لم يكن هناك رمز اسمه الإدخال. فإن الرابط يحاول تحليل إدخال كعدد، واستخدام ذلك كعنوان إدخال (سيتم تفسير الرقم في القاعدة 10 يمكنك استخدام 0x الرائدة للقاعدة 16، أو الرائدة 0 للقاعدة 8). يحدد قائمة بمكتبات الأرشيف التي لا يجب تصدير الرموز منها تلقائيا. قد يتم تحديد أسماء المكتبة بفواصل أو كولون. تحديد --exclude-ليبس آل يستبعد الرموز في كل مكتبات الأرشيف من التصدير التلقائي. يتوفر هذا الخيار فقط للمنفذ المستهدف I386 بي للرابط ومنافذ إلف المستهدفة. بالنسبة إلى i386 بي، لا تزال يتم تصدير الرموز صراحة في ملف. def بغض النظر عن هذا الخيار. بالنسبة لموانئ إلف المستهدفة، سيتم التعامل مع الرموز المتأثرة بهذا الخيار على أنها مخفية. لتحديد قائمة ملفات الكائن أو أعضاء الأرشيف، والتي يجب ألا يتم تصدير الرموز منها تلقائيا، ولكن يجب نسخها بالجملة في مكتبة الاستيراد التي يتم إنشاؤها أثناء الارتباط. قد يتم تحديد أسماء الوحدات النمطية بفواصل أو كولون، ويجب أن تطابق تماما أسماء الملفات المستخدمة من قبل لد لفتح الملفات لأعضاء الأرشيف، وهذا هو ببساطة اسم العضو، ولكن لملفات الكائن يجب أن يتضمن اسم المدرجة وتطابق على وجه التحديد أي مسار المستخدمة لتحديد ملف الإدخال على لينكرس سطر الأوامر. يتوفر هذا الخيار فقط لمنفذ استهداف i386 بي للرابط. لا تزال يتم تصدير الرموز صراحة في ملف. def، بغض النظر عن هذا الخيار. عند إنشاء ملف قابل للتنفيذ ديناميكيا، باستخدام الخيار - E أو الخيار - export-ديناميك يؤدي الارتباط لإضافة كافة الرموز إلى جدول الرموز الديناميكية. جدول الرموز الديناميكية هو مجموعة من الرموز التي تكون مرئية من الكائنات الحيوية في وقت التشغيل. إذا كنت لا تستخدم أي من هذه الخيارات (أو استخدام الخيار - no-إكسبورت-ديناميك لاستعادة السلوك الافتراضي)، فإن جدول الرموز الديناميكية عادة ما تحتوي فقط على تلك الرموز التي تمت الإشارة إليها من قبل بعض كائن حيوي المذكورة في الارتباط. إذا كنت تستخدم دلوبين لتحميل كائن حيوي الذي يحتاج إلى الرجوع إلى الرموز التي يحددها البرنامج، بدلا من بعض كائن ديناميكي آخر، فإنك ربما تحتاج إلى استخدام هذا الخيار عند ربط البرنامج نفسه. يمكنك أيضا استخدام القائمة الديناميكية للتحكم في الرموز التي يجب إضافتها إلى جدول الرموز الديناميكية إذا كان تنسيق الإخراج يدعمها. انظر وصف --dynamic قائمة. لاحظ أن هذا الخيار محدد لموانئ إلف المستهدفة. أهداف بي دعم وظيفة مماثلة لتصدير كافة الرموز من دل أو إيكس انظر وصف --export-آل-سيمبوتس أدناه. ربط الكائنات إنديان كبيرة. يؤثر هذا على تنسيق الإخراج الافتراضي. ربط الأشياء قليلا إنديان. يؤثر هذا على تنسيق الإخراج الافتراضي. عند إنشاء كائن مشترك إلف تعيين الحقل دتوكسيلياري داخلي إلى الاسم المحدد. يخبرك هذا الارتباط الديناميكي بأنه يجب استخدام جدول الرموز للكائن المشترك كمرشح مساعد على جدول الرموز لاسم العنصر المشترك. إذا قمت لاحقا بربط برنامج ضد كائن الفلتر هذا، عند تشغيل البرنامج، سينظر الرابط الديناميكي الحقل دتوكسيلياري. إذا كان الارتباط الديناميكي يحل أي رموز من كائن الفلتر، فسيتحقق أولا من وجود تعريف في اسم العنصر المشترك. إذا كان هناك واحد، سيتم استخدامه بدلا من التعريف في كائن التصفية. اسم العنصر المشترك غير موجود. وبالتالي، يمكن استخدام اسم العنصر المشترك لتوفير تنفيذ بديل لوظائف معينة، ربما لتصحيح الأخطاء أو لأداء محدد للجهاز. قد يتم تحديد هذا الخيار أكثر من مرة. سيتم إنشاء إدخالات دتوكسيلياري بالترتيب الذي تظهر به على سطر الأوامر. عند إنشاء كائن مشترك إلف تعيين الحقل دتفيلتر الداخلي إلى الاسم المحدد. هذا يخبر الارتباط الديناميكي الذي يجب استخدام الجدول رمز الكائن المشترك الذي يتم إنشاؤه كفلتر على جدول رموز اسم الكائن المشترك. إذا قمت في وقت لاحق ربط برنامج ضد كائن التصفية هذا، عند تشغيل البرنامج، سينظر الارتباط الديناميكي الحقل دتفيلتر. سيقوم الرابط الديناميكي بحل الرموز وفقا لجدول الرموز لعنصر الفلتر كالمعتاد، ولكنه سيرتبط فعليا بالتعاريف الموجودة في اسم العنصر المشترك. وبالتالي يمكن استخدام كائن التصفية لتحديد مجموعة فرعية من الرموز التي يوفرها اسم العنصر. استخدمت بعض لينكرز القديمة الخيار - F في جميع أنحاء أداة توليف تجميع لتحديد تنسيق ملف كائن لكلا المدخلات والمخرجات ملفات الكائن. يستخدم رابط غنو آليات أخرى لهذا الغرض: - b. --شكل . خيارات - oformat، الأمر تارجيت في البرامج النصية رابط، ومتغير بيئة غنوتارجيت. سيقوم رابط غنو بتجاهل الخيار - F عند عدم إنشاء كائن مشترك إلف. عند إنشاء كائن إلف قابل للتنفيذ أو مشترك، اتصل ب نيم عند إلغاء تحميل الكائن القابل للتنفيذ أو المشترك، من خلال تعيين دتفيني إلى عنوان الدالة. افتراضيا، يستخدم رابط فيني كدالة للاتصال. تجاهلها. شريطة التوافق مع الأدوات الأخرى. تعيين الحد الأقصى لحجم الكائنات إلى أن يكون الأمثل باستخدام سجل غب إلى الحجم. وهذا مفيد فقط لتنسيقات ملفات الكائن مثل ميبس إكوف الذي يدعم وضع الكائنات الكبيرة والصغيرة في أقسام مختلفة. يتم تجاهل هذا لتنسيقات ملفات الكائنات الأخرى. عند إنشاء كائن مشترك إلف تعيين الحقل دتسونام الداخلي إلى الاسم المحدد. عند ربط ملف قابل للتنفيذ مع كائن مشترك يحتوي على حقل دتسونام، عند تشغيل الملف القابل للتنفيذ، يحاول الارتباط الديناميكي تحميل الكائن المشترك المحدد بواسطة الحقل دتسونام بدلا من استخدام اسم الملف المعطى للرابط. قم بتنفيذ ارتباط تزايدي (نفس الخيار - r). عند إنشاء كائن إلف قابل للتنفيذ أو مشترك، اتصل ب نيم عند تحميل الكائن القابل للتنفيذ أو المشترك، من خلال تعيين دتينيت إلى عنوان الدالة. بشكل افتراضي، يستخدم الرابط إينيت كدالة للاتصال. إضافة الأرشيف أو ملف الكائن المحدد بواسطة نامسبيك إلى قائمة الملفات لربط. يمكن استخدام هذا الخيار في أي عدد من المرات. إذا كان نامسبيك من النموذج: فلنام. سوف لد البحث في مسار المكتبة لملف يسمى اسم الملف. وإلا فإنه سيتم البحث في مسار المكتبة لملف يسمى ليب نامسبيك. a. في الأنظمة التي تدعم المكتبات المشتركة، قد يبحث لد أيضا عن ملفات أخرى غير ليب نامبيك. a. على وجه التحديد، على أنظمة إلف و سونوس، ود البحث في دليل مكتبة تسمى ليب نامسبك. so قبل البحث عن واحد يسمى ليب نامسبك. أ. حسب الاتفاقية، يشير امتداد. so إلى مكتبة مشتركة. لاحظ أن هذا السلوك لا ينطبق على: اسم الملف. الذي يحدد دائما ملف يسمى اسم الملف. سيقوم رابط البحث في أرشيف مرة واحدة فقط، في المكان الذي يتم تحديده على سطر الأوامر. إذا كان الأرشيف يحدد رمزا غير محدد في بعض الكائنات التي ظهرت قبل الأرشيف على سطر الأوامر، فسيتضمن الرابط الملف (الملفات) المناسب من الأرشيف. ومع ذلك، فإن رمز غير معروف في كائن يظهر لاحقا على سطر الأوامر لا يسبب الارتباط للبحث في الأرشيف مرة أخرى. انظر الخيار - (خيار لإجبار الوصلة على أرشفة البحث عدة مرات، ويمكنك إدراج نفس الأرشيف عدة مرات في سطر الأوامر، وهذا النوع من البحث في الأرشيف هو معيار لوصلات أونيكس، ولكن إذا كنت تستخدم لد على إيكس لاحظ أنه يختلف عن سلوك رابط إيكس إضافة مسار سيرتشدير إلى قائمة المسارات التي ستقوم بد بالبحث عن مكتبات أرشيف و لد السيطرة على البرامج النصية. يمكنك استخدام هذا الخيار أي عدد من المرات يتم البحث في الدلائل في الترتيب الذي يتم تحديده على سطر الأوامر. يتم البحث عن الدلائل المحددة في سطر الأوامر قبل الدلائل الافتراضية. جميع خيارات - L تنطبق على جميع الخيارات - l بغض النظر عن الترتيب الذي تظهر فيه الخيارات - لا خيارات لا تؤثر على كيفية إجراء عمليات بحث لد لنصوص رابط ما لم يتم تحديد الخيار - T. إذا بدأ البحث سيرتشدير، فسيتم استبدال البادئة سيسروت، المسار المحدد عند تكوين الوصلة، المجموعة الافتراضية للمسارات التي تم البحث عنها (بدون بي نغ المحدد مع - L) يعتمد على أسلوب المحاكاة لد الذي يستخدم، وفي بعض الحالات أيضا على كيفية تكوينه في وقت البناء. ويمكن أيضا تحديد المسارات في نص برمجي للوصلة مع الأمر سيرتشدير. يتم البحث عن الدلائل المحددة بهذه الطريقة عند النقطة التي يظهر فيها البرنامج النصي لينكر في سطر الأوامر. محاكاة مضاهاة رابط. يمكنك سرد المحاكاة المتاحة مع --verbose أو خيارات - V. إذا لم يتم استخدام الخيار - m، يتم أخذ مضاهاة من متغير البيئة لدمولاشيون، إذا تم تعريف ذلك. وإلا، تعتمد المحاكاة الافتراضية على كيفية تكوين الوسيطة. طباعة خريطة الارتباط إلى الإخراج القياسية. توفر خريطة الارتباط معلومات حول الارتباط، بما في ذلك ما يلي: حيث يتم تعيين ملفات الكائنات في الذاكرة. كيف يتم تخصيص الرموز المشتركة. جميع أعضاء الأرشيف المدرجة في الرابط، مع الإشارة إلى الرمز الذي تسبب في إدخال الأرشيف. القيم المخصصة للرموز. ملاحظة: الرموز التي يتم حساب قيمها بواسطة تعبير يحتوي على مرجع إلى قيمة سابقة من نفس الرمز قد لا يكون النتيجة الصحيحة المعروضة في خريطة الارتباط. ويرجع ذلك إلى أن الرابط يتجاهل النتائج الوسيطة ويحافظ فقط على القيمة النهائية للتعبير. وفي ظل هذه الظروف، يعرض الرابط القيمة النهائية المرسومة بين أقواس معقوفة. وهكذا على سبيل المثال سيناريو رابط يحتوي على: سوف ينتج الناتج التالي في خريطة الارتباط إذا تم استخدام الخيار - M: إيقاف محاذاة الصفحة من الأقسام، وتعطيل الربط ضد المكتبات المشتركة. إذا كان تنسيق الإخراج يدعم أونيكس الأرقام السحر نمط، علامة الإخراج كما نماجيك. تعيين أقسام النص والبيانات لتكون قابلة للقراءة وقابلة للكتابة. أيضا، لا الصفحة محاذاة شريحة البيانات، وتعطيل الربط ضد المكتبات المشتركة. إذا كان تنسيق الإخراج يدعم أونيكس الأرقام السحر نمط، علامة الإخراج كما أوماجيك. ملاحظة: على الرغم من السماح لقسم نص قابل للكتابة لأهداف بي-كوف، إلا أنه لا يتوافق مع مواصفات التنسيق التي تنشرها ميكروسوفت. هذا الخيار ينفي معظم آثار الخيار - N. ويحدد قسم النص للقراءة فقط، ويجبر شريحة البيانات على محاذاة الصفحة. ملاحظة - لا يتيح هذا الخيار الربط مع المكتبات المشتركة. استخدام - Bdynamic لهذا الغرض. استخدم الإخراج كاسم للبرنامج الذي تنتجه لد إذا لم يتم تحديد هذا الخيار، يتم استخدام الاسم a. out بشكل افتراضي. يمكن أن يقوم الأمر سكريبت أوتبوت أيضا بتحديد اسم ملف الإخراج. إذا كان المستوى هو قيمة رقمية أكبر من صفر لد يحسن الإخراج. قد يستغرق هذا وقتا أطول بكثير، وبالتالي ربما يجب تمكين فقط للثنائي النهائي. في الوقت الحالي يؤثر هذا الخيار فقط إلف جيل المكتبة المشتركة. قد تستخدم الإصدارات المستقبلية للرابط المزيد من استخدام هذا الخيار. أيضا لا يوجد فرق في سلوك لينكرز لقيم مختلفة غير صفرية من هذا الخيار. مرة أخرى قد يتغير هذا مع الإصدارات المستقبلية. ترك أقسام نقل ومحتويات في التنفيذ الكامل مرتبط. قد تحتاج أدوات تحليل الروابط وأدوات التحسين إلى هذه المعلومات من أجل إجراء التعديلات الصحيحة على الملفات القابلة للتنفيذ. يؤدي هذا إلى تنفيذ أكبر. هذا الخيار معتمد حاليا فقط على منصات إلف. فرض ملف الإخراج لديك أقسام ديناميكية. هذا الخيار محدد لأهداف فسوركس. توليد ناتج قابل لإعادة التوزيع: أي إنشاء ملف إخراج يمكن بدوره أن يكون بمثابة مدخل إلى لد. وهذا غالبا ما يسمى الربط الجزئي. كآثار جانبية، في البيئات التي تدعم أرقام السحر يونكس القياسية، هذا الخيار أيضا يحدد عدد الملفات المخرجات السحرية إلى أوماجيك. إذا لم يتم تحديد هذا الخيار، يتم إنشاء ملف مطلق. عند ربط برامج C، لن يؤدي هذا الخيار إلى حل الإشارات إلى منشئين للقيام بذلك، استخدم - Ur. عندما لا يحتوي ملف الإدخال على نفس تنسيق ملف الإخراج، يتم دعم الربط الجزئي فقط إذا كان ملف الإدخال هذا لا يحتوي على أية عمليات إعادة توطين. يمكن أن يكون لصيغ الإخراج المختلفة المزيد من القيود على سبيل المثال بعض التنسيقات المستندة إلى. out لا تدعم الربط الجزئي مع ملفات الإدخال بتنسيقات أخرى على الإطلاق. هذا الخيار يفعل نفس الشيء - i. قراءة أسماء الرموز وعناوينها من اسم الملف. ولكن لا نقله أو تضمينه في الإخراج. وهذا يسمح ملف الإخراج الخاص بك للإشارة رمزيا إلى مواقع مطلقة من الذاكرة المحددة في برامج أخرى. يمكنك استخدام هذا الخيار أكثر من مرة. للتوافق مع غيرها من لينكرس إلف، إذا كان الخيار - R متبوعا باسم الدليل، بدلا من اسم ملف، يتم التعامل معها كخيار - rpath. حذف كافة معلومات الرمز من ملف الإخراج. استخدام سكريبتفيل كنص رابط. يحل هذا البرنامج النصي محل البرنامج النصي الافتراضي ليندر سد (بدلا من الإضافة إليه)، لذا يجب على كوماندفيل تحديد كل ما هو ضروري لوصف ملف الإخراج. إذا لم يكن سكريبتفيل موجود في الدليل الحالي، بد يبحث عن ذلك في الدلائل المحددة من قبل أي خيارات - L السابقة. متعددة - T الخيارات تتراكم. استخدام سكريبتفيل كنص رابط الارتباط الافتراضي. هذا الخيار مشابه لخيار --script إلا أنه يتم تأجيل معالجة البرنامج النصي حتى بعد معالجة بقية سطر الأوامر. ويسمح هذا بالخيارات الموضوعة بعد أن يؤثر الخيار --default-سكريبت في سطر الأوامر على سلوك البرنامج النصي للوصلة، وهو أمر يمكن أن يكون مهما عندما يتعذر على سطر الأوامر لينكر التحكم مباشرة من قبل المستخدم. (على سبيل المثال، لأنه يتم إنشاء سطر الأوامر بواسطة أداة أخرى، مثل غك). رمز القوة المراد إدخاله في ملف الإخراج كرمز غير معروف. قد يؤدي القيام بذلك، على سبيل المثال، إلى ربط وحدات إضافية من المكتبات القياسية. - u يمكن أن تتكرر مع وسيطات خيارات مختلفة لإدخال رموز إضافية غير معرفة. هذا الخيار يعادل الأمر سكريبت لينكر إكسترن. وبالنسبة لأي شيء آخر غير برامج C، يكون هذا الخيار مساويا ل - r. فإنه يولد الناتج ريلوكاتابل أي ملف الإخراج التي يمكن بدورها بمثابة مدخلات لد. عند ربط برامج C، - Ur لا حل الإشارات إلى منشئ، على عكس - r. أنها لا تعمل على استخدام - Ur على الملفات التي كانت مرتبطة أنفسهم مع - Ur مرة واحدة وقد تم بناء الجدول منشئ، فإنه لا يمكن أن تضاف إلى. استخدام - Ur فقط لآخر وصلة جزئية، و - r للآخرين. لإنشاء قسم إخراج منفصل لكل قسم إدخال يطابق القسم، أو إذا كانت وسيطة اختيارية سيكتيون سيكتيون مفقودة، لكل قسم إدخال يتيم. قسم اليتيم هو واحد لم يذكر على وجه التحديد في البرنامج النصي رابط. يمكنك استخدام هذا الخيار عدة مرات على سطر الأوامر يمنع الاندماج العادي لأقسام الإدخال بنفس الاسم، مع تجاوز مهام قسم الإخراج في برنامج نصي لينكر. عرض رقم الإصدار ل لد. يسرد الخيار - V أيضا المحاكاة المدعومة. يتم تجاهل الكلمات الرئيسية الأخرى للتوافق سولاريس. --start-غروب أرتشيفس --end-غروب يجب أن تكون المحفوظات قائمة بملفات الأرشيف. قد تكون إما أسماء الملفات الصريحة، أو - l الخيارات. يتم البحث في الأرشيفات بشكل متكرر حتى لا يتم إنشاء مراجع جديدة غير معرفة. عادة، يتم البحث في الأرشيف مرة واحدة فقط بالترتيب الذي يتم تحديده على سطر الأوامر. إذا كان هناك حاجة إلى رمز في هذا الأرشيف لحل رمز غير معروف المشار إليه بواسطة كائن في أرشيف يظهر لاحقا على سطر الأوامر، فلن يتمكن الرابط من حل هذا المرجع. من خلال تجميع الأرشيفات، يتم البحث فيها بشكل متكرر حتى يتم حل جميع المراجع المحتملة. يؤدي استخدام هذا الخيار إلى تكلفة أداء كبيرة. فمن الأفضل أن تستخدم فقط عندما يكون هناك مراجع دائرية لا مفر منه بين اثنين أو أكثر من المحفوظات. يحكي الرابط لقبول ملفات الإدخال التي لا يمكن التعرف على معماريتها. الافتراض هو أن المستخدم يعرف ما يفعلونه ويريد عمدا لربط في هذه الملفات الإدخال غير معروف. كان هذا هو السلوك الافتراضي للرابط، قبل الإصدار 2.14. The default behaviour from release 2.14 onwards is to reject such input files, and so the --accept-unknown-input-arch option has been added to restore the old behaviour. This option affects ELF DTNEEDED tags for dynamic libraries mentioned on the command line after the --as-needed option. Normally the linker will add a DTNEEDED tag for each dynamic library mentioned on the command line, regardless of whether the library is actually needed or not. --as-needed causes a DTNEEDED tag to only be emitted for a library that satisfies an undefined symbol reference from a regular object file or, if the library is not found in the DTNEEDED lists of other libraries linked up to that point, an undefined symbol reference from another dynamic library. --no-as-needed restores the default behaviour. These two options have been deprecated because of the similarity of their names to the --as-needed and --no-as-needed options. They have been replaced by --copy-dt-needed-entries and --no-copy-dt-needed-entries . This option is ignored for SunOS compatibility. Link against dynamic libraries. This is only meaningful on platforms for which shared libraries are supported. This option is normally the default on such platforms. The different variants of this option are for compatibility with various systems. You may use this option multiple times on the command line: it affects library searching for - l options which follow it. Set the DF1GROUP flag in the DTFLAGS1 entry in the dynamic section. This causes the runtime linker to handle lookups in this object and its dependencies to be performed only inside the group. --unresolved-symbolsreport-all is implied. This option is only meaningful on ELF platforms which support shared libraries. Do not link against shared libraries. This is only meaningful on platforms for which shared libraries are supported. The different variants of this option are for compatibility with various systems. You may use this option multiple times on the command line: it affects library searching for - l options which follow it. This option also implies --unresolved-symbolsreport-all . This option can be used with - shared . Doing so means that a shared library is being created but that all of the librarys external references must be resolved by pulling in entries from static libraries. When creating a shared library, bind references to global symbols to the definition within the shared library, if any. Normally, it is possible for a program linked against a shared library to override the definition within the shared library. This option is only meaningful on ELF platforms which support shared libraries. When creating a shared library, bind references to global function symbols to the definition within the shared library, if any. This option is only meaningful on ELF platforms which support shared libraries. Specify the name of a dynamic list file to the linker. This is typically used when creating shared libraries to specify a list of global symbols whose references shouldnt be bound to the definition within the shared library, or creating dynamically linked executables to specify a list of symbols which should be added to the symbol table in the executable. This option is only meaningful on ELF platforms which support shared libraries. The format of the dynamic list is the same as the version node without scope and node name. Include all global data symbols to the dynamic list. Provide the builtin dynamic list for C operator new and delete. It is mainly useful for building shared libstdc. Provide the builtin dynamic list for C runtime type identification. Asks the linker not to check section addresses after they have been assigned to see if there are any overlaps. Normally the linker will perform this check, and if it finds any overlaps it will produce suitable error messages. The linker does know about, and does make allowances for sections in overlays. The default behaviour can be restored by using the command line switch --check-sections . Section overlap is not usually checked for relocatable links. You can force checking in that case by using the --check-sections option. This option affects the treatment of dynamic libraries referred to by DTNEEDED tags inside ELF dynamic libraries mentioned on the command line. Normally the linker wont add a DTNEEDED tag to the output binary for each library mentioned in a DTNEEDED tag in an input dynamic library. With --copy-dt-needed-entries specified on the command line however any dynamic libraries that follow it will have their DTNEEDED entries added. The default behaviour can be restored with --no-copy-dt-needed-entries . This option also has an effect on the resolution of symbols in dynamic libraries. With --copy-dt-needed-entries dynamic libraries mentioned on the command line will be recursively searched, following their DTNEEDED tags to other libraries, in order to resolve symbols required by the output binary. With the default setting however the searching of dynamic libraries that follow it will stop with the dynamic library itself. No DTNEEDED links will be traversed to resolve symbols. Output a cross reference table. If a linker map file is being generated, the cross reference table is printed to the map file. Otherwise, it is printed on the standard output. The format of the table is intentionally simple, so that it may be easily processed by a script if necessary. The symbols are printed out, sorted by name. For each symbol, a list of file names is given. If the symbol is defined, the first file listed is the location of the definition. The remaining files contain references to the symbol. This option inhibits the assignment of addresses to common symbols. The script command INHIBITCOMMONALLOCATION has the same effect. The --no-define-common option allows decoupling the decision to assign addresses to Common symbols from the choice of the output file type otherwise a non-Relocatable output type forces assigning addresses to Common symbols. Using --no-define-common allows Common symbols that are referenced from a shared library to be assigned addresses only in the main program. This eliminates the unused duplicate space in the shared library, and also prevents any possible confusion over resolving to the wrong duplicate when there are many dynamic modules with specialized search paths for runtime symbol resolution. Create a global symbol in the output file, containing the absolute address given by expression . You may use this option as many times as necessary to define multiple symbols in the command line. A limited form of arithmetic is supported for the expression in this context: you may give a hexadecimal constant or the name of an existing symbol, or use and - to add or subtract hexadecimal constants or symbols. If you need more elaborate expressions, consider using the linker command language from a script. Note: there should be no white space between symbol, the equals sign ( ), and expression . These options control whether to demangle symbol names in error messages and other output. When the linker is told to demangle, it tries to present symbol names in a readable fashion: it strips leading underscores if they are used by the object file format, and converts C mangled symbol names into user readable names. Different compilers have different mangling styles. The optional demangling style argument can be used to choose an appropriate demangling style for your compiler. The linker will demangle by default unless the environment variable COLLECTNODEMANGLE is set. These options may be used to override the default. Set the name of the dynamic linker. This is only meaningful when generating dynamically linked ELF executables. The default dynamic linker is normally correct dont use this unless you know what you are doing. Treat all warnings as errors. The default behaviour can be restored with the option --no-fatal-warnings . Make sure that an output file has a. exe suffix. If a successfully built fully linked output file does not have a. exe or. dll suffix, this option forces the linker to copy the output file to one of the same name with a. exe suffix. This option is useful when using unmodified Unix makefiles on a Microsoft Windows host, since some versions of Windows wont run an image unless it ends in a. exe suffix. Enable garbage collection of unused input sections. It is ignored on targets that do not support this option. The default behaviour (of not performing this garbage collection) can be restored by specifying --no-gc-sections on the command line. --gc-sections decides which input sections are used by examining symbols and relocations. The section containing the entry symbol and all sections containing symbols undefined on the command-line will be kept, as will sections containing symbols referenced by dynamic objects. Note that when building shared libraries, the linker must assume that any visible symbol is referenced. Once this initial set of sections has been determined, the linker recursively marks as used any section referenced by their relocations. See --entry and --undefined . This option can be set when doing a partial link (enabled with option - r ). In this case the root of symbols kept must be explicitly specified either by an --entry or --undefined option or by a ENTRY command in the linker script. List all sections removed by garbage collection. The listing is printed on stderr. This option is only effective if garbage collection has been enabled via the --gc-sections ) option. The default behaviour (of not listing the sections that are removed) can be restored by specifying --no-print-gc-sections on the command line. Print the name of the default output format (perhaps influenced by other command-line options). This is the string that would appear in an OUTPUTFORMAT linker script command. Print a summary of the command-line options on the standard output and exit. Report unresolved symbols that are contained in shared libraries, but ignore them if they come from regular object files. Report unresolved symbols that come from regular object files, but ignore them if they come from shared libraries. This can be useful when creating a dynamic binary and it is known that all the shared libraries that it should be referencing are included on the linkers command line. The behaviour for shared libraries on their own can also be controlled by the -- no - allow-shlib-undefined option. Normally the linker will generate an error message for each reported unresolved symbol but the option --warn-unresolved-symbols can change this to a warning. Display the version number for ld and list the linker emulations supported. Display which input files can and cannot be opened. Display the linker script being used by the linker. If the optional NUMBER argument gt 1 . plugin symbol status will also be displayed. Specify the name of a version script to the linker. This is typically used when creating shared libraries to specify additional information about the version hierarchy for the library being created. This option is only fully supported on ELF platforms which support shared libraries. It is partially supported on PE platforms, which can use version scripts to filter symbol visibility in auto-export mode: any symbols marked local in the version script will not be exported. Warn when a common symbol is combined with another common symbol or with a symbol definition. Unix linkers allow this somewhat sloppy practice, but linkers on some other operating systems do not. This option allows you to find potential problems from combining global symbols. Unfortunately, some C libraries use this practice, so you may get some warnings about symbols in the libraries as well as in your programs. There are three kinds of global symbols, illustrated here by C examples: A definition, which goes in the initialized data section of the output file. An undefined reference, which does not allocate space. There must be either a definition or a common symbol for the variable somewhere. A common symbol. If there are only (one or more) common symbols for a variable, it goes in the uninitialized data area of the output file. The linker merges multiple common symbols for the same variable into a single symbol. If they are of different sizes, it picks the largest size. The linker turns a common symbol into a declaration, if there is a definition of the same variable. The --warn-common option can produce five kinds of warnings. Each warning consists of a pair of lines: the first describes the symbol just encountered, and the second describes the previous symbol encountered with the same name. One or both of the two symbols will be a common symbol. 1. Turning a common symbol into a reference, because there is already a definition for the symbol. 2. Turning a common symbol into a reference, because a later definition for the symbol is encountered. This is the same as the previous case, except that the symbols are encountered in a different order. 3. Merging a common symbol with a previous same-sized common symbol. 4. Merging a common symbol with a previous larger common symbol. 5. Merging a common symbol with a previous smaller common symbol. This is the same as the previous case, except that the symbols are encountered in a different order. Warn if any global constructors are used. This is only useful for a few object file formats. For formats like COFF or ELF, the linker can not detect the use of global constructors. Warn if multiple global pointer values are required in the output file. This is only meaningful for certain processors, such as the DEC Alpha. Specifically, some processors put large-valued constants in a special section. A special register (the global pointer) points into the middle of this section, so that constants can be loaded efficiently via a base-register relative addressing mode. Since the offset in base-register relative mode is fixed and relatively small (e. g. 16 bits ), this limits the maximum size of the constant pool. Thus, in large programs, it is often necessary to use multiple global pointer values in order to be able to address all possible constants. This option causes a warning to be issued whenever this case occurs. Only warn once for each undefined symbol, rather than once per module which refers to it. Warn if the address of an output section is changed because of alignment. Typically, the alignment will be set by an input section. The address will only be changed if it not explicitly specified that is, if the SECTIONS command does not specify a start address for the section. Warn if the linker adds a DTTEXTREL to a shared object. The GNU linker ld is meant to cover a broad range of situations, and to be as compatible as possible with other linkers. As a result, you have many choices to control its behavior. Here is a summary of the options you can use on the ld command line: This plethora of command-line options may seem intimidating, but in actual practice few of them are used in any particular context. For instance, a frequent use of ld is to link standard Unix object files on a standard, supported Unix system. On such a system, to link a file hello. o. This tells ld to produce a file called output as the result of linking the file libcrt0.o with hello. o and the library libc. a. which will come from the standard search directories. (See the discussion of the - l option below.) The command-line options to ld may be specified in any order, and may be repeated at will. Repeating most options with a different argument will either have no further effect, or override prior occurrences (those further to the left on the command line) of that option. The exceptions--which may meaningfully be used more than once--are - A. - b (or its synonym - format ), - defsym. - L. - l. - R. - u. and -( (or its synonym --start-group ). The list of object files to be linked together, shown as objfile. may follow, precede, or be mixed in with command-line options, except that an objfile argument may not be placed between an option and its argument. Usually the linker is invoked with at least one object file, but you can specify other forms of binary input files using - l. - R. and the script command language. If no binary input files at all are specified, the linker does not produce any output, and issues the message No input files. If the linker can not recognize the format of an object file, it will assume that it is a linker script. A script specified in this way augments the main linker script used for the link (either the default linker script or the one specified by using - T ). This feature permits the linker to link against a file which appears to be an object or an archive, but actually merely defines some symbol values, or uses INPUT or GROUP to load other objects. See sec tion Command Language. For options whose names are a single letter, option arguments must either follow the option letter without intervening whitespace, or be given as separate arguments immediately following the option that requires them. For options whose names are multiple letters, either one dash or two can precede the option name for example, --oformat and - oformat are equivalent. Arguments to multiple-letter options must either be separated from the option name by an equals sign, or be given as separate arguments immediately following the option that requires them. For example, --oformat srec and --oformatsrec are equivalent. Unique abbreviations of the names of multiple-letter options are accepted. - b input-format ld may be configured to support more than one kind of object file. If your ld is configured this way, you can use the - b option to specify the binary format for input object files that follow this option on the command line. Even when ld is configured to support alternative object formats, you dont usually need to specify this, as ld should be configured to expect as a default input format the most usual format on each machine. input-format is a text string, the name of a particular format supported by the BFD libraries. (You can list the available binary formats with objdump - i .) - format input-format has the same effect, as does the script command TARGET. See section BFD. You may want to use this option if you are linking files with an unusual binary format. You can also use - b to switch formats explicitly (when linking object files of different formats), by including - b input-format before each group of object files in a particular format. The default format is taken from the environment variable GNUTARGET. You can also define the input format from a script, using the command TARGET see section Option Commands. - Bstatic Do not link against shared libraries. This is only meaningful on platforms for which shared libraries are supported. - Bdynamic Link against dynamic libraries. This is only meaningful on platforms for which shared libraries are supported. This option is normally the default on such platforms. - Bsymbolic When creating a shared library, bind references to global symbols to the definition within the shared library, if any. Normally, it is possible for a program linked against a shared library to override the definition within the shared library. This option is only meaningful on ELF platforms which support shared libraries. - c MRI-commandfile For compatibility with linkers produced by MRI, ld accepts script files written in an alternate, restricted command language, described in section MRI Compatible Script Files. Introduce MRI script files with the option - c use the - T option to run linker scripts written in the general-purpose ld scripting language. If MRI-cmdfile does not exist, ld looks for it in the directories specified by any - L options. - d - dc - dp These three options are equivalent multiple forms are supported for compatibility with other linkers. They assign space to common symbols even if a relocatable output file is specified (with - r ). The script command FORCECOMMONALLOCATION has the same effect. See section Option Commands. - defsym symbol expression Create a global symbol in the output file, containing the absolute address given by expression. You may use this option as many times as necessary to define multiple symbols in the command line. A limited form of arithmetic is supported for the expression in this context: you may give a hexadecimal constant or the name of an existing symbol, or use and - to add or subtract hexadecimal constants or symbols. If you need more elaborate expressions, consider using the linker command language from a script (see section Assignment: Defining Symbols ). Note: there should be no white space between symbol. the equals sign ( ), and expression. - embedded-relocs This option is only meaningful when linking MIPS embedded PIC code, generated by the - membedded-pic option to the GNU compiler and assembler. It causes the linker to create a table which may be used at runtime to relocate any data which was statically initialized to pointer values. See the code in testsuiteld-empic for details. - e entry Use entry as the explicit symbol for beginning execution of your program, rather than the default entry point. See section The Entry Point. for a discussion of defaults and other ways of specifying the entry point. - F - F format Ignored. Some older linkers used this option throughout a compilation toolchain for specifying object-file format for both input and output object files. The mechanisms ld uses for this purpose (the - b or - format options for input files, - oformat option or the TARGET command in linker scripts for output files, the GNUTARGET environment variable) are more flexible, but ld accepts the - F option for compatibility with scripts written to call the old linker. - format input-format Synonym for - b input-format . - g Ignored. Provided for compatibility with other tools. - G value - G value Set the maximum size of objects to be optimized using the GP register to size under MIPS ECOFF. Ignored for other object file formats. - help Print a summary of the command-line options on the standard output and exit. - i Perform an incremental link (same as option - r ). - l ar Add archive file archive to the list of files to link. This option may be used any number of times. ld will search its path-list for occurrences of lib ar. a for every archive specified. - L searchdir - L searchdir Add path searchdir to the list of paths that ld will search for archive libraries and ld control scripts. You may use this option any number of times. The directories are searched in the order in which they are specified on the command line. Directories specified on the command line are searched before the default directories. All - L options apply to all - l options, regardless of the order in which the options appear. The paths can also be specified in a link script with the SEARCHDIR command. Directories specified this way are searched at the point in which the linker script appears in the command line. - M Print (to the standard output) a link map--diagnostic information about where symbols are mapped by ld. and information on global common storage allocation. - Map mapfile Print to the file mapfile a link map--diagnostic information about where symbols are mapped by ld. and information on global common storage allocation. - m emulation - m emulation Emulate the emulation linker. You can list the available emulations with the --verbose or - V options. The default depends on how your ld was configured. - N Set the text and data sections to be readable and writable. Also, do not page-align the data segment. If the output format supports Unix style magic numbers, mark the output as OMAGIC. - n Set the text segment to be read only, and mark the output as NMAGIC if possible. - noinhibit-exec Retain the executable output file whenever it is still usable. Normally, the linker will not produce an output file if it encounters errors during the link process it exits without writing an output file when it issues any error whatsoever. - no-keep-memory ld normally optimizes for speed over memory usage by caching the symbol tables of input files in memory. This option tells ld to instead optimize for memory usage, by rereading the symbol tables as necessary. This may be required if ld runs out of memory space while linking a large executable. - o output Use output as the name for the program produced by ld if this option is not specified, the name a. out is used by default. The script command OUTPUT can also specify the output file name. - oformat output-format ld may be configured to support more than one kind of object file. If your ld is configured this way, you can use the - oformat option to specify the binary format for the output object file. Even when ld is configured to support alternative object formats, you dont usually need to specify this, as ld should be configured to produce as a default output format the most usual format on each machine. output-format is a text string, the name of a particular format supported by the BFD libraries. (You can list the available binary formats with objdump - i .) The script command OUTPUTFORMAT can also specify the output format, but this option overrides it. See section BFD. - R filename Read symbol names and their addresses from filename. but do not relocate it or include it in the output. This allows your output file to refer symbolically to absolute locations of memory defined in other programs. - relax An option with machine dependent effects. On some platforms, the - relax option performs global optimizations that become possible when the linker resolves addressing in the program, such as relaxing address modes and synthesizing new instructions in the output object file. - retain-symbols-file filename Retain only the symbols listed in the file filename. discarding all others. filename is simply a flat file, with one symbol name per line. This option is especially useful in environments where a large global symbol table is accumulated gradually, to conserve run-time memory. - retain-symbols-file does not discard undefined symbols, or symbols needed for relocations. You may only specify - retain-symbols-file once in the command line. It overrides - s and - S. - r Generate relocatable output--i. e. generate an output file that can in turn serve as input to ld. This is often called partial linking . As a side effect, in environments that support standard Unix magic numbers, this option also sets the output files magic number to OMAGIC. If this option is not specified, an absolute file is produced. When linking C programs, this option will not resolve references to constructors to do that, use - Ur. This option does the same thing as - i. - S Omit debugger symbol information (but not all symbols) from the output file. - s Omit all symbol information from the output file. - shared Create a shared library. This is currently only supported on ELF and SunOS platforms. On SunOS, the linker will automatically create a shared library if the - e option is not used and there are undefined symbols in the link. - sort-common Normally, when ld places the global common symbols in the appropriate output sections, it sorts them by size. First come all the one byte symbols, then all the two bytes, then all the four bytes, and then everything else. This is to prevent gaps between symbols due to alignment constraints. This option disables that sorting. - split-by-reloc count Trys to creates extra sections in the output file so that no single output section in the file contains more than count relocations. This is useful when generating huge relocatable for downloading into certain real time kernels with the COFF object file format since COFF cannot represent more than 65535 relocations in a single section. Note that this will fail to work with object file formats which do not support arbitrary sections. The linker will not split up individual input sections for redistribution, so if a single input section contains more than count relocations one output section will contain that many relocations. - split-by-file Similar to - split-by-reloc but creates a new output section for each input file. - stats Compute and display statistics about the operation of the linker, such as execution time and memory usage. - Tbss org - Tdata org - Ttext org Use org as the starting address for--respectively--the bss. البيانات. or the text segment of the output file. org must be a single hexadecimal integer for compatibility with other linkers, you may omit the leading 0x usually associated with hexadecimal values. - T commandfile - T commandfile Read link commands from the file commandfile. These commands replace ld s default link script (rather than adding to it), so commandfile must specify everything necessary to describe the target format. See section Command Language. If commandfile does not exist, ld looks for it in the directories specified by any preceding - L options. Multiple - T options accumulate. - t Print the names of the input files as ld processes them. - traditional-format For some targets, the output of ld is different in some ways from the output of some existing linker. This switch requests ld to use the traditional format instead. For example, on SunOS, ld combines duplicate entries in the symbol string table. This can reduce the size of an output file with full debugging information by over 30 percent. Unfortunately, the SunOS dbx program can not read the resulting program ( gdb has no trouble). The - traditional-format switch tells ld to not combine duplicate entries. - u symbol Force symbol to be entered in the output file as an undefined symbol. Doing this may, for example, trigger linking of additional modules from standard libraries. - u may be repeated with different option arguments to enter additional undefined symbols. - Ur For anything other than C programs, this option is equivalent to - r. it generates relocatable output--i. e. an output file that can in turn serve as input to ld. When linking C programs, - Ur does resolve references to constructors, unlike - r. It does not work to use - Ur on files that were themselves linked with - Ur once the constructor table has been built, it cannot be added to. Use - Ur only for the last partial link, and - r for the others. --verbose Display the version number for ld and list the linker emulations supported. Display which input files can and cannot be opened. - v - V Display the version number for ld. The - V option also lists the supported emulations. - version Display the version number for ld and exit. - warn-common Warn when a common symbol is combined with another common symbol or with a symbol definition. Unix linkers allow this somewhat sloppy practice, but linkers on some other operating systems do not. This option allows you to find potential problems from combining global symbols. Unfortunately, some C libraries use this practice, so you may get some warnings about symbols in the libraries as well as in your programs. There are three kinds of global symbols, illustrated here by C examples: int i 1 A definition, which goes in the initialized data section of the output file. extern int i An undefined reference, which does not allocate space. There must be either a definition or a common symbol for the variable somewhere. int i A common symbol. If there are only (one or more) common symbols for a variable, it goes in the uninitialized data area of the output file. The linker merges multiple common symbols for the same variable into a single symbol. If they are of different sizes, it picks the largest size. The linker turns a common symbol into a declaration, if there is a definition of the same variable. The - warn-common option can produce five kinds of warnings. Each warning consists of a pair of lines: the first describes the symbol just encountered, and the second describes the previous symbol encountered with the same name. One or both of the two symbols will be a common symbol. Turning a common symbol into a reference, because there is already a definition for the symbol. Turning a common symbol into a reference, because a later definition for the symbol is encountered. This is the same as the previous case, except that the symbols are encountered in a different order. Merging a common symbol with a previous same-sized common symbol. Merging a common symbol with a previous larger common symbol. Merging a common symbol with a previous smaller common symbol. This is the same as the previous case, except that the symbols are encountered in a different order. - warn-constructors Warn if any global constructors are used. This is only useful for a few object file formats. For formats like COFF or ELF, the linker can not detect the use of global constructors. - warn-once Only warn once for each undefined symbol, rather than once per module which refers to it. For each archive mentioned on the command line, include every object file in the archive in the link, rather than searching the archive for the required object files. This is normally used to turn an archive file into a shared library, forcing every object to be included in the resulting shared library. - X Delete all temporary local symbols. For most targets, this is all local symbols whose names begin with L. - x Delete all local symbols. - y symbol Print the name of each linked file in which symbol appears. This option may be given any number of times. On many systems it is necessary to prepend an underscore. This option is useful when you have an undefined symbol in your link but dont know where the reference is coming from. -( archives -) --start-group archives --end-group The archives should be a list of archive files. They may be either explicit file names, or - l options. The specified archives are searched repeatedly until no new undefined references are created. Normally, an archive is searched only once in the order that it is specified on the command line. If a symbol in that archive is needed to resolve an undefined symbol referred to by an object in an archive that appears later on the command line, the linker would not be able to resolve that reference. By grouping the archives, they all be searched repeatedly until all possible references are resolved. Using this option has a significant performance cost. It is best to use it only when there are unavoidable circular references between two or more archives. Go to the first. سابقة. التالى. last section, table of contents.

Comments

Popular posts from this blog

الحرة الثنائية ، الخيارات إشارات providersoft

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

الفوركس التداول أجهزة الكمبيوتر في المملكة المتحدة

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

الشباب - الفوركس - التجار ukc

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