OBJCOPY(1)

الاسم
objcopy - نسخ ملفات الكائنات وترجمتها

موجز
objcopy [-F اسم_bfd|--target=اسم_bfd]
        [-I اسم_bfd|--input-target=اسم_bfd]
        [-O اسم_bfd|--output-target=اسم_bfd]
        [-B معمارية_bfd|--binary-architecture=معمارية_bfd]
        [-S|--strip-all]
        [-g|--strip-debug]
        [--strip-unneeded]
        [-K اسم_الرمز|--keep-symbol=اسم_الرمز]
        [--keep-file-symbols]
        [--keep-section-symbols]
        [-N اسم_الرمز|--strip-symbol=اسم_الرمز]
        [--strip-unneeded-symbol=اسم_الرمز]
        [-G اسم_الرمز|--keep-global-symbol=اسم_الرمز]
        [--localize-hidden]
        [-L اسم_الرمز|--localize-symbol=اسم_الرمز]
        [--globalize-symbol=اسم_الرمز]
        [--globalize-symbols=اسم_الملف]
        [-W اسم_الرمز|--weaken-symbol=اسم_الرمز]
        [-w|--wildcard]
        [-x|--discard-all]
        [-X|--discard-locals]
        [-b بايت|--byte=بايت]
        [-i [اتساع]|--interleave[=اتساع]]
        [--interleave-width=عرض]
        [-j نمط_القسم|--only-section=نمط_القسم]
        [-R نمط_القسم|--remove-section=نمط_القسم]
        [--keep-section=نمط_القسم]
        [--remove-relocations=نمط_القسم]
        [--strip-section-headers]
        [-p|--preserve-dates]
        [-D|--enable-deterministic-archives]
        [-U|--disable-deterministic-archives]
        [--debugging]
        [--gap-fill=قيمة]
        [--pad-to=عنوان]
        [--set-start=قيمة]
        [--adjust-start=زيادة]
        [--change-addresses=زيادة]
        [--change-section-address نمط_القسم{=,+,-}قيمة]
        [--change-section-lma نمط_القسم{=,+,-}قيمة]
        [--change-section-vma نمط_القسم{=,+,-}قيمة]
        [--change-warnings] [--no-change-warnings]
        [--set-section-flags نمط_القسم=أعلام]
        [--set-section-alignment نمط_القسم=محاذاة]
        [--add-section اسم_القسم=اسم_الملف]
        [--dump-section اسم_القسم=اسم_الملف]
        [--update-section اسم_القسم=اسم_الملف]
        [--rename-section اسم_قديم=اسم_جديد[,أعلام]]
        [--long-section-names {enable,disable,keep}]
        [--change-leading-char] [--remove-leading-char]
        [--reverse-bytes=عدد]
        [--srec-len=قيمة_صحيحة] [--srec-forceS3]
        [--redefine-sym قديم=جديد]
        [--redefine-syms=اسم_الملف]
        [--weaken]
        [--keep-symbols=اسم_الملف]
        [--strip-symbols=اسم_الملف]
        [--strip-unneeded-symbols=اسم_الملف]
        [--keep-global-symbols=اسم_الملف]
        [--localize-symbols=اسم_الملف]
        [--weaken-symbols=اسم_الملف]
        [--binary-symbol-prefixسلسلة]
        [--add-symbol اسم=[قسم:]قيمة[,أعلام]]
        [--alt-machine-code=فهرس]
        [--prefix-symbols=سلسلة]
        [--prefix-sections=سلسلة]
        [--prefix-alloc-sections=سلسلة]
        [--add-gnu-debuglink=مسار_إلى_ملف]
        [--only-keep-debug]
        [--strip-dwo]
        [--extract-dwo]
        [--extract-symbol]
        [--writable-text]
        [--readonly-text]
        [--pure]
        [--impure]
        [--file-alignment=عدد]
        [--heap=محجوز[,مُنفذ]]
        [--image-base=عنوان]
        [--section-alignment=عدد]
        [--stack=محجوز[,مُنفذ]]
        [--subsystem=أي:رئيس.فرعي]
        [--compress-debug-sections]
        [--decompress-debug-sections]
        [--elf-stt-common=قيمة]
        [--merge-notes]
        [--no-merge-notes]
        [--verilog-data-width=قيمة]
        [-v|--verbose]
        [-V|--version]
        [--help] [--info]
        ملف_المدخل [ملف_المخرج]

الوصف
تنسخ أداة GNU objcopy محتويات ملف كائن إلى آخر. تستخدم objcopy مكتبة GNU BFD لقراءة ملفات الكائنات وكتابتها. يمكنها كتابة ملف الكائن الوجهة بتنسيق يختلف عن تنسيق ملف الكائن المصدر. يُتحكم في السلوك الدقيق لـ objcopy عبر خيارات سطر الأوامر. لاحظ أن objcopy يجب أن تكون قادرة على نسخ ملف مرتبط بالكامل بين أي تنسيقين. ومع ذلك، قد لا يعمل نسخ ملف كائن قابل لإعادة التوطين بين أي تنسيقين كما هو متوقع.

تنشئ objcopy ملفات مؤقتة لإجراء ترجماتها وتحذفها بعد ذلك. تستخدم objcopy مكتبة BFD للقيام بكل أعمال الترجمة؛ ولديها وصول إلى جميع التنسيقات الموصوفة في BFD وبالتالي فهي قادرة على التعرف على معظم التنسيقات دون إخبارها صراحة.

يمكن استخدام objcopy لتوليد سجلات-S باستخدام هدف مخرج srec (على سبيل المثال، استخدم -O srec).

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

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

ملاحظة---لا تستطيع objcopy تغيير ترتيب البايتات (endianness) لملفات مدخلاتها. إذا كان لتنسيق المدخل ترتيب بايتات (بعض التنسيقات ليس لها)، فإن objcopy يمكنها فقط نسخ المدخلات إلى تنسيقات ملفات لها نفس ترتيب البايتات أو التي ليس لها ترتيب بايتات (مثل srec). (ومع ذلك، انظر خيار --reverse-bytes.)

الخيارات

ملف_المدخل
ملف_المخرج
    ملفا المدخل والمخرج، على التوالي. إذا لم تحدد ملف_المخرج، فستنشئ objcopy ملفاً مؤقتاً وتغير اسم النتيجة بشكل تخريبي إلى اسم ملف_المدخل.

-I اسم_bfd
--input-target=اسم-bfd
    اعتبر تنسيق كائن ملف المصدر هو bfdname، بدلاً من محاولة استنتاجه.

-O اسم_bfd
--output-target=اسم_bfd
    اكتب ملف المخرج باستخدام تنسيق الكائن اسم_bfd.

-F اسم_bfd
--target=اسم_bfd
    استخدم اسم_bfd كتنسيق كائن لكل من ملفي المدخل والمخرج؛ أي انقل البيانات ببساطة من المصدر إلى الوجهة دون ترجمة.

-B معمارية_bfd
--binary-architecture=معمارية_bfd
    مفيد عند تحويل ملف مدخل عديم المعمارية إلى ملف كائن. في هذه الحالة يمكن ضبط معمارية المخرج إلى معمارية_bfd. سيُتجاهل هذا الخيار إذا كان لملف المدخل معمارية_bfd معروفة. يمكنك الوصول إلى هذه البيانات الثنائية داخل برنامج ما بالإشارة إلى الرموز الخاصة التي أُنشئت بواسطة عملية التحويل. تُسمى هذه الرموز _binary_objfile_start و _binary_objfile_end و _binary_objfile_size. على سبيل المثال، يمكنك تحويل ملف صورة إلى ملف كائن ثم الوصول إليه في كودك البرمجي باستخدام هذه الرموز.

-j نمط_القسم
--only-section=نمط_القسم
    انسخ فقط الأقسام المشار إليها من ملف المدخل إلى ملف المخرج. يمكن إعطاء هذا الخيار أكثر من مرة. لاحظ أن استخدام هذا الخيار بشكل غير مناسب قد يجعل ملف المخرج غير قابل للاستخدام. محارف البدل مقبولة في نمط_القسم.

    إذا كان المحرف الأول من نمط_القسم هو علامة التعجب (!)، فلن تُنسخ الأقسام المتطابقة، حتى لو كان استخدام سابق لـ --only-section في نفس سطر الأوامر سيؤدي بخلاف ذلك إلى نسخها. على سبيل المثال:

              --only-section=.text.* --only-section=!.text.foo

    سيسخ جميع الأقسام التي تطابق '.text.*' باستثناء القسم '.text.foo'.

-R نمط_القسم
--remove-section=نمط_القسم
    أزل أي قسم يطابق نمط_القسم من ملف المخرج. يمكن إعطاء هذا الخيار أكثر من مرة. لاحظ أن استخدام هذا الخيار بشكل غير مناسب قد يجعل ملف المخرج غير قابل للاستخدام. محارف البدل مقبولة في نمط_القسم. يؤدي استخدام كل من الخيارين -j و -R معاً إلى سلوك غير محدد.

    إذا كان المحرف الأول من sectionpattern هو علامة التعجب (!)، فلن تُزَل الأقسام المتطابقة حتى لو كان استخدام سابق لـ --remove-section في نفس سطر الأوامر سيؤدي إلى إزالتها. على سبيل المثال:

              --remove-section=.text.* --remove-section=!.text.foo

    سيزيل جميع الأقسام التي تطابق النمط '.text.*'، لكنه لن يزيل القسم '.text.foo'.

--keep-section=نمط-القسم
    عند إزالة الأقسام من ملف المخرج، احتفظ بالأقسام التي تطابق sectionpattern.

--remove-relocations=نمط_القسم
    أزل عمليات إعادة التوطين غير الديناميكية من ملف المخرج لأي قسم يطابق نمط_القسم. يمكن إعطاء هذا الخيار أكثر من مرة. لاحظ أن استخدام هذا الخيار بشكل غير مناسب قد يجعل ملف المخرج غير قابل للاستخدام، ومحاولة إزالة قسم إعادة توطين ديناميكي مثل .rela.plt من ملف تنفيذي أو مكتبة مشتركة باستخدام --remove-relocations=.plt لن تنجح. محارف البدل مقبولة في نمط_القسم. على سبيل المثال:

              --remove-relocations=.text.*

    سيزيل عمليات إعادة التوطين لجميع الأقسام التي تطابق النمط '.text.*'.

    إذا كان المحرف الأول من sectionpattern هو علامة التعجب (!)، فلن تُزَال إعادة التوطين (relocation) للأقسام المتطابقة حتى لو كان استخدام سابق لـ --remove-relocations في نفس سطر الأوامر سيؤدي إلى إزالة عمليات إعادة التوطين. على سبيل المثال:

              --remove-relocations=.text.* --remove-relocations=!.text.foo

    سيزيل جميع عمليات إعادة التوطين للأقسام التي تطابق النمط '.text.*'، لكنه لن يزيل عمليات إعادة التوطين للقسم '.text.foo'.

--strip-section-headers
    جرد رأس القسم؛ هذا الخيار خاص بملفات ELF. ويتضمن --strip-all و --merge-notes.

-S
--strip-all
    لا تنسخ معلومات إعادة التوطين والرموز من ملف المصدر. كما يحذف أقسام تنقيح الأخطاء.

-g
--strip-debug
    لا تنسخ رموز أو أقسام تنقيح الأخطاء من ملف المصدر.

--strip-unneeded
    إزالة جميع الرموز التي لا حاجة إليها لمعالجة إعادة التوطين بالإضافة إلى رموز تنقيح الأخطاء والمقاطع المزالَة بواسطة --strip-debug.

-K اسم_الرمز
--keep-symbol=اسم-الرمز
    عند تجريد الرموز، احتفظ بالرمز symbolname حتى لو كان سيُجرد في الحالة العادية. يمكن إعطاء هذا الخيار أكثر من مرة.

-N اسم_الرمز
--strip-symbol=اسم_الرمز
    لا تنسخ الرمز اسم_الرمز من ملف المصدر. يمكن إعطاء هذا الخيار أكثر من مرة.

--strip-unneeded-symbol=اسم_الرمز
    لا تنسخ الرمز symbolname من ملف المصدر إلا إذا كان مطلوبًا لعملية إعادة توطين (relocation). يمكن تكرار هذا الخيار أكثر من مرة.

-G symbolname
--keep-global-symbol=symbolname
    أبقِ الرمز symbolname وحده عالميًا. اجعل جميع الرموز الأخرى محلية في الملف، بحيث لا تظهر خارجيًا. يمكن تكرار هذا الخيار أكثر من مرة. ملاحظة: لا يمكن استخدام هذا الخيار مع خياري --globalize-symbol أو --globalize-symbols.

--localize-hidden
    في كائن ELF، علم جميع الرموز التي لها رؤية مخفية أو داخلية على أنها محلية. يُطبق هذا الخيار فوق خيارات التحويل إلى محلي الخاصة برموز معينة مثل -L.

-L symbolname
--localize-symbol=symbolname
    حوّل رمزًا عالميًا أو ضعيفًا يسمى symbolname إلى رمز محلي، بحيث لا يظهر خارجيًا. يمكن تكرار هذا الخيار أكثر من مرة. ملاحظة - لا تُحوّل الرموز الفريدة.

-W symbolname
--weaken-symbol=symbolname
    اجعل الرمز symbolname ضعيفًا. يمكن تكرار هذا الخيار أكثر من مرة.

--binary-symbol-prefix=string
    عند استخدامه مع --input-target=binary، يضبط string ليكون الاسم الأساسي للرموز المولدة لملف المدخلات. هذه الرموز هي:

            <string>_start
            <string>_end
            <string>_size

    يشتق معالج المدخلات الثنائية مبدئيًا اسم بادئة الرمز من نسخة مشوهة (mangled) لاسم ملف المدخلات والبادئة _binary. يتيح هذا الخيار تحديدها صراحة.

--globalize-symbol=symbolname
    امنح الرمز symbolname نطاقًا عالميًا بحيث يظهر خارج الملف الذي عُرّف فيه. يمكن تكرار هذا الخيار أكثر من مرة. ملاحظة: لا يمكن استخدام هذا الخيار بالتزامن مع خيارات -G أو --keep-global-symbol.

-w
--wildcard
    اسمح بالتعبيرات النمطية في symbolnames المستخدمة في خيارات سطر الأوامر الأخرى. يمكن استخدام معاملات علامة الاستفهام (?)، والنجمة (*)، والشرطة المائلة العكسية (\)، والأقواس المربعة ([]) في أي مكان في اسم الرمز. إذا كان المحرف الأول من اسم الرمز هو علامة التعجب (!)، فإن معنى التبديل يُعكس لهذا الرمز. على سبيل المثال:

              -w -W !foo -W fo*

    سيؤدي ذلك إلى قيام objcopy بإضعاف جميع الرموز التي تبدأ بـ "fo" باستثناء الرمز "foo".

-x
--discard-all
    لا تنسخ الرموز غير العالمية من ملف المصدر.

-X
--discard-locals
    لا تنسخ الرموز المحلية التي ولدها المجمّع. (تبدأ هذه عادةً بـ L أو ..)

-b byte
--byte=byte
    إذا فعل التداخل عبر خيار --interleave، فابدأ نطاق البايتات المراد إبقاؤها عند البايت رقم byte. يمكن أن يكون byte في النطاق من 0 إلى breadth-1، حيث breadth هي القيمة المعطاة عبر خيار --interleave.

-i [breadth]
--interleave[=breadth]
    انسخ فقط نطاقًا من كل breadth بايت. (لا تتأثر بيانات الترويسة). اختر أي بايت في النطاق يبدأ النسخ باستخدام خيار --byte. اختر عرض النطاق باستخدام خيار --interleave-width.

    هذا الخيار مفيد لإنشاء ملفات لبرمجة ROM. يُستخدم عادةً مع هدف مخرجات "srec". لاحظ أن objcopy سيصدر تنبيهًا إذا لم تحدد خيار --byte أيضًا.

    عرض التداخل المبدئي هو 4، لذا عند ضبط --byte على 0، سيقوم objcopy بنسخ البايت الأول من كل أربعة بايتات من المدخلات إلى المخرجات.

--interleave-width=width
    عند استخدامه مع خيار --interleave، انسخ width بايت في المرة الواحدة. تُحدد بداية نطاق البايتات المراد نسخها بواسطة خيار --byte، ويُحدد مدى النطاق باستخدام خيار --interleave.

    القيمة المبدئية لهذا الخيار هي 1. يجب ألا تتجاوز قيمة width زائد قيمة byte المحددة بخيار --byte عرض التداخل المحدد بخيار --interleave.

    يمكن استخدام هذا الخيار لإنشاء صور لوحدتي ذاكرة وميضية 16 بت متداخلتين في مسار (bus) سعة 32 بت عن طريق تمرير -b 0 -i 4 --interleave-width=2 و -b 2 -i 4 --interleave-width=2 إلى أمري objcopy. إذا كانت المدخلات '12345678'، فستكون المخرجات '1256' و '3478' على التوالي.

-p
--preserve-dates
    اضبط تاريخي الوصول والتعديل لملف المخرجات ليكونا نفس تاريخي ملف المدخلات.

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

-D
--enable-deterministic-archives
    العمل في الوضع المحدد (deterministic). عند نسخ أعضاء الأرشيف وكتابة فهرس الأرشيف، استخدم صفرًا لـ UIDs و GIDs والطوابع الزمنية، واستخدم أوضاع ملفات متسقة لجميع الملفات.

    إذا ضُبطت binutils مع خيار --enable-deterministic-archives، فإن هذا الوضع يكون مفعلا مبدئيا. يمكن تعطيله بخيار -U أدناه.

-U
--disable-deterministic-archives
    لا يعمل في الوضع المحدد. هذا هو عكس الخيار -D أعلاه: عند نسخ أعضاء الأرشيف وكتابة فهرس الأرشيف، تُستخدم قيم UID وGID والطابع الزمني ووضع الملف الفعلية.

    هذا هو المبدئي ما لم يتم ضبط binutils بـ --enable-deterministic-archives.

--debugging
    حوّل معلومات التنقيح، إن أمكن. ليس هذا هو المبدئي لأن تنسيقات تنقيح معينة فقط هي المدعومة، وعملية التحويل قد تستغرق وقتًا طويلاً.

--gap-fill val
    املأ الفجوات بين الأقسام بالقيمة val. تنطبق هذه العملية على عنوان التحميل (LMA) للأقسام. يُنفذ ذلك عن طريق زيادة حجم القسم ذي العنوان الأدنى، وملء المساحة الإضافية الناتجة بالقيمة val.

--pad-to address
    حشّ ملف المخرجات حتى عنوان التحميل address. يُنفذ ذلك عن طريق زيادة حجم القسم الأخير. تُملأ المساحة الإضافية بالقيمة المحددة بواسطة --gap-fill (المبدئي هو صفر).

--set-start val
    اضبط عنوان البدء (يُعرف أيضًا باسم عنوان الإدخال) للملف الجديد على val. لا تدعم جميع تنسيقات ملفات الكائنات ضبط عنوان البدء.

--change-start incr
--adjust-start incr
    غيّر عنوان البدء (يُعرف أيضًا باسم عنوان الإدخال) بإضافة incr. لا تدعم جميع تنسيقات ملفات الكائنات ضبط عنوان البدء.

--change-addresses incr
--adjust-vma incr
    يُغيّر عناوين VMA و LMA لجميع الأقسام، بالإضافة إلى عنوان البدء، عبر إضافة incr. لا تسمح بعض تنسيقات ملفات الكائنات بتغيير عناوين الأقسام عشوائيًا. لاحظ أن هذا لا يعيد توطين الأقسام؛ فإذا كان البرنامج يتوقع تحميل الأقسام في عنوان معين، واستُخدم هذا الخيار لتغيير الأقسام بحيث تُحمّل في عنوان مختلف، فقد يفشل البرنامج.

--change-section-address sectionpattern{=,+,-}val
--adjust-section-vma sectionpattern{=,+,-}val
    يضبط أو يُغيّر كلاً من عنوان VMA وعنوان LMA لأي قسم يطابق sectionpattern. إذا استُخدمت علامة =، يُضبط عنوان القسم على val. خلاف ذلك، تُضاف val إلى عنوان القسم أو تُطرح منه. راجع الملاحظات الواردة تحت --change-addresses أعلاه. إذا لم يطابق sectionpattern أي أقسام في ملف المدخلات، فسيُصدر تحذير، ما لم يُستخدم الخيار --no-change-warnings.

--change-section-lma sectionpattern{=,+,-}val
    يضبط أو يُغيّر عنوان LMA لأي أقسام تطابق sectionpattern. عنوان LMA هو العنوان الذي سيُحمّل القسم فيه داخل الذاكرة وقت تحميل البرنامج. عادةً ما يكون هو نفسه عنوان VMA، وهو عنوان القسم وقت تشغيل البرنامج، ولكن في بعض الأنظمة، خاصة تلك التي يُحفظ فيها البرنامج في ROM، يمكن أن يختلف الاثنان. إذا استُخدمت علامة =، يُضبط عنوان القسم على val. خلاف ذلك، تُضاف val إلى عنوان القسم أو تُطرح منه. راجع الملاحظات الواردة تحت --change-addresses أعلاه. إذا لم يطابق sectionpattern أي أقسام في ملف المدخلات، فسيُصدر تحذير، ما لم يُستخدم --no-change-warnings.

--change-section-vma sectionpattern{=,+,-}val
    يضبط أو يُغيّر عنوان VMA لأي قسم يطابق sectionpattern. عنوان VMA هو العنوان الذي سيقع فيه القسم بمجرد بدء تنفيذ البرنامج. عادةً ما يكون هو نفسه عنوان LMA، وهو العنوان الذي سيُحمّل القسم فيه داخل الذاكرة، ولكن في بعض الأنظمة، خاصة تلك التي يُحفظ فيها البرنامج في ROM، يمكن أن يختلف الاثنان. إذا استُخدمت علامة =، يُضبط عنوان القسم على val. خلاف ذلك، تُضاف val إلى عنوان القسم أو تُطرح منه. راجع الملاحظات الواردة تحت --change-addresses أعلاه. إذا لم يطابق sectionpattern أي أقسام في ملف المدخلات، فسيُصدر تحذير، ما لم يُستخدم --no-change-warnings.

    ملاحظة - قد يكون تغيير VMA للأقسام في ملف ثنائي مرتبِط كليًا أمرًا خطيرًا، حيث قد توجد شيفرات تتوقع وجود الأقسام في عناوينها القديمة.

--change-warnings
--adjust-warnings
    إذا استُخدم --change-section-address أو --change-section-lma أو --change-section-vma، ولم يطابق نمط القسم أي أقسام، فيُصدر تحذير. وهذا هو السلوك المبدئي.

--no-change-warnings
--no-adjust-warnings
    لا يُصدر تحذيرًا إذا استُخدم --change-section-address أو --adjust-section-lma أو --adjust-section-vma، حتى لو لم يطابق نمط القسم أي أقسام.

--set-section-flags sectionpattern=flags
    يضبط الأعلام لأي أقسام تطابق sectionpattern. المعطى flags هو سلسلة نصية من أسماء الأعلام مفصولة بفاصلة. الأسماء المعروفة هي alloc، و contents، و load، و noload، و readonly، و code، و data، و rom، و exclude، و share، و debug، و large. يمكنك ضبط العلم contents لقسم ليس له محتويات، ولكن ليس من المنطقي مسح علم contents لقسم له محتويات -- فبدلاً من ذلك ما عليك سوى إزالة القسم. ليست كل الأعلام ذات معنى لجميع تنسيقات ملفات الكائنات. وبشكل خاص، علم share ليس له معنى إلا لملفات بتنسيق COFF وليس لملفات بتنسيق ELF. يقابل علم large الخاص بـ ELF x86-64 القيمة SHF_X86_64_LARGE.

--set-section-alignment sectionpattern=align
    يضبط المحاذاة لأي أقسام تطابق sectionpattern. يحدد align المحاذاة بالبايت ويجب أن يكون من قوى العدد اثنين، أي 1، 2، 4، 8....

    ملاحظة - ضبط محاذاة القسم لن يؤدي إلى محاذاة عناوين LMA أو VMA الخاصة به آليًا. إذا كانت هذه العناوين بحاجة إلى التغيير أيضًا، فيجب استخدام خيارات --change-section-lma و/أو --change-section-vma. لاحظ أيضًا أن تغيير VMAs يمكن أن يسبب مشاكل في الملفات الثنائية المرتبطة كليًا حيث قد يكون هناك كود يتوقع وجود محتويات الأقسام في عناوينها القديمة.

--add-section sectionname=filename
    يضيف قسمًا جديدًا باسم sectionname أثناء نسخ الملف. تُؤخذ محتويات القسم الجديد من الملف filename. سيكون حجم القسم هو نفس حجم الملف. لا يعمل هذا الخيار إلا مع تنسيقات الملفات التي تدعم أقسامًا بأسماء عشوائية. ملاحظة - قد يلزم استخدام خيار --set-section-flags لضبط سمات القسم المنشأ حديثًا.

--dump-section sectionname=filename
    يضع محتويات القسم المسمى sectionname في الملف filename، مع الكتابة فوق أي محتويات قد كانت موجودة مسبقًا. هذا الخيار هو عكس --add-section. يشبه هذا الخيار خيار --only-section باستثناء أنه لا ينشئ ملفًا منسقًا، بل يفرغ المحتويات كبيانات ثنائية خام فقط، دون تطبيق أي عمليات إعادة توطين. يمكن تحديد هذا الخيار أكثر من مرة.

--update-section sectionname=filename
    يستبدل المحتويات الحالية لقسم مسمى sectionname بمحتويات الملف filename. سيُعدّل حجم القسم ليناسب حجم الملف. ستبقى أعلام القسم لـ sectionname دون تغيير. وبالنسبة لملفات بتنسيق ELF، سيبقى أيضًا تعيين القسم إلى القطعة (segment) دون تغيير، وهو أمر غير ممكن باستخدام --remove-section متبوعًا بـ --add-section. يمكن تحديد هذا الخيار أكثر من مرة.

    ملاحظة - من الممكن استخدام --rename-section و --update-section لتحديث وإعادة تسمية قسم معًا من سطر أوامر واحد. في هذه الحالة، مرر اسم القسم الأصلي إلى --update-section، والاسمين الأصلي والجديد للقسم إلى --rename-section.

--add-symbol name=[section:]value[,flags]
    أضف رمزًا جديدًا باسم name أثناء نسخ الملف. يمكن تحديد هذا الخيار عدة مرات. إذا أُعطي section، فسيُربط الرمز بهذا القسم ويكون منسوبًا إليه، وإلا سيكون رمز ABS. سيؤدي تحديد قسم غير معرف إلى خطأ فادح. لا يوجد تحقق من القيمة، ستؤخذ كما هي محددة. يمكن تحديد أعلام الرموز، ولا تكون جميع الأعلام ذات مغزى لجميع تنسيقات ملفات الكائنات. افتراضيًا، سيكون الرمز عامًا (global). العلم الخاص 'before=othersym' سيُدرج الرمز الجديد أمام othersym المحدد، وإلا ستُضاف الرموز في نهاية جدول الرموز بترتيب ظهورها.

--rename-section oldname=newname[,flags]
    أعد تسمية قسم من oldname إلى newname، مع تغيير أعلام القسم اختياريًا إلى flags في هذه العملية. هذا له ميزة على استخدام سكريبت الرابط لإجراء إعادة التسمية في أن المخرجات تظل كملف كائن ولا تصبح ملفًا تنفيذيًا مرتبطًا. يقبل هذا الخيار نفس مجموعة الأعلام التي يقبلها خيار --set-section-flags.

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

              objcopy -I binary -O <output_format> -B <architecture> \
               --rename-section .data=.rodata,alloc,load,readonly,data,contents \
               <input_binary_file> <output_object_file>

--long-section-names {enable,disable,keep}
    يتحكم في التعامل مع أسماء الأقسام الطويلة عند معالجة تنسيقات الكائنات "COFF" و "PE-COFF". السلوك المبدئي، keep، هو الحفاظ على أسماء الأقسام الطويلة إذا كانت موجودة في ملف المدخلات. يُمكن الخياران enable و disable أو يعطلان قسريًا استخدام أسماء الأقسام الطويلة في كائن المخرجات؛ فعند تفعيل disable، ستُبتر أي أسماء أقسام طويلة في كائن المدخلات. سيُصدر خيار enable أسماء أقسام طويلة فقط إذا كانت موجودة في المدخلات؛ وهذا يماثل keep تقريبًا، ولكن لم يُحدد ما إذا كان خيار enable قد يفرض إنشاء جدول سلاسل نصية فارغ في ملف المخرجات.

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

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

--reverse-bytes=num
    يعكس البايتات في قسم له محتويات مخرجات. يجب أن يكون طول القسم قابلاً للقسمة تمامًا على القيمة المعطاة لكي تتم عملية التبادل. تتم عملية العكس قبل إجراء التداخل.

    يُستخدم هذا الخيار عادةً في توليد صور ROM للأنظمة المستهدفة التي بها مشكلات. على سبيل المثال، في بعض لوحات الأجهزة المستهدفة، تُعاد تجميع الكلمات ذات 32 بت المجلوية من ذاكرات ROM ذات 8 بت بترتيب البايتات الصغير (little-endian) بغض النظر عن ترتيب بايتات المعالج. وبناءً على نموذج البرمجة، قد يلزم تعديل ترتيب بايتات (endianness) الـ ROM.

    لنتأمل ملفًا بسيطًا يحتوي على قسم يضم البايتات الثمانية التالية: 12345678.

    باستخدام --reverse-bytes=2 للمثال أعلاه، ستكون البايتات في ملف المخرجات مرتبة كالتالي 21436587.

    باستخدام --reverse-bytes=4 للمثال أعلاه، ستكون البايتات في ملف المخرجات مرتبة كالتالي 43218765.

    باستخدام --reverse-bytes=2 للمثال أعلاه، متبوعًا بـ --reverse-bytes=4 على ملف المخرجات، ستكون البايتات في ملف المخرجات الثاني مرتبة كالتالي 34127856.

--srec-len=ival
    ذو معنى فقط لمخرجات srec. يضبط الحد الأقصى لطول سجلات S المنتجة إلى ival. يغطي هذا الطول كلاً من حقول العنوان والبيانات و crc.

--srec-forceS3
    ذو معنى فقط لمخرجات srec. يتجنب توليد سجلات S1/S2، وينشئ تنسيق سجلات S3 فقط.

--redefine-sym old=new
    يغير اسم الرمز old إلى new. يمكن أن يكون هذا مفيدًا عند محاولة ربط شيئين ببعضهما دون توفر المصدر، ومع وجود تضارب في الأسماء.

--redefine-syms=filename
    يطبق خيار --redefine-sym على كل زوج من الرموز "old new" المذكورة في الملف filename. الملف filename هو ببساطة ملف مسطح، يحتوي على زوج رموز واحد في كل سطر. يمكن كتابة تعليقات الأسطر باستخدام محرف الهاش. يمكن تحديد هذا الخيار أكثر من مرة.

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

--keep-symbols=filename
    يطبق خيار --keep-symbol على كل رمز مذكور في الملف filename. الملف filename هو ببساطة ملف مسطح، يحتوي على اسم رمز واحد في كل سطر. يمكن كتابة تعليقات الأسطر باستخدام محرف الهاش. يمكن تحديد هذا الخيار أكثر من مرة.

--strip-symbols=filename
    يطبق خيار --strip-symbol على كل رمز مذكور في الملف filename. الملف filename هو ببساطة ملف مسطح، يحتوي على اسم رمز واحد في كل سطر. يمكن كتابة تعليقات الأسطر باستخدام محرف الهاش. يمكن تحديد هذا الخيار أكثر من مرة.

--strip-unneeded-symbols=filename
    يطبق خيار --strip-unneeded-symbol على كل رمز مذكور في الملف filename. الملف filename هو ببساطة ملف مسطح، يحتوي على اسم رمز واحد في كل سطر. يمكن كتابة تعليقات الأسطر باستخدام محرف الهاش. يمكن تحديد هذا الخيار أكثر من مرة.

--keep-global-symbols=filename
    يطبق خيار --keep-global-symbol على كل رمز مذكور في الملف filename. الملف filename هو ببساطة ملف مسطح، يحتوي على اسم رمز واحد في كل سطر. يمكن كتابة تعليقات الأسطر باستخدام محرف الهاش. يمكن تحديد هذا الخيار أكثر من مرة.

--localize-symbols=filename
    يطبق خيار --localize-symbol على كل رمز مذكور في الملف filename. الملف filename هو ببساطة ملف مسطح، يحتوي على اسم رمز واحد في كل سطر. يمكن كتابة تعليقات الأسطر باستخدام محرف الهاش. يمكن تحديد هذا الخيار أكثر من مرة.

--globalize-symbols=filename
    يطبق خيار --globalize-symbol على كل رمز مذكور في الملف filename. الملف filename هو ببساطة ملف مسطح، يحتوي على اسم رمز واحد في كل سطر. يمكن كتابة تعليقات الأسطر باستخدام محرف الهاش. يمكن تحديد هذا الخيار أكثر من مرة. ملاحظة: لا يمكن استخدام هذا الخيار بالتزامن مع الخيارين -G أو --keep-global-symbol.

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

--alt-machine-code=index
    إذا كانت بنية المخرجات تحتوي على رموز آلة بديلة، فاستخدم الرمز رقم index بدلاً من الرمز المبدئي. هذا مفيد في حالة تخصيص رمز رسمي لآلة ما واعتماد سلسلة الأدوات للرمز الجديد، بينما لا تزال التطبيقات الأخرى تعتمد على استخدام الرمز الأصلي. بالنسبة للبنيات القائمة على ELF، إذا لم يكن البديل index موجودًا، فستُعامل القيمة كعدد مطلق ليُخزن في حقل e_machine في ترويسة ELF.

--writable-text
    ميز نص المخرجات كقابل للكتابة. هذا الخيار ليس ذا مغزى لجميع تنسيقات ملفات الكائنات.

--readonly-text
    اجعل نص المخرجات محميًا من الكتابة. هذا الخيار ليس ذا مغزى لجميع تنسيقات ملفات الكائنات.

--pure
    ميز ملف المخرجات كصفحات عند الطلب (demand paged). هذا الخيار ليس ذا مغزى لجميع تنسيقات ملفات الكائنات.

--impure
    ميز ملف المخرجات كغير نقي (impure). هذا الخيار ليس ذا مغزى لجميع تنسيقات ملفات الكائنات.

--prefix-symbols=string
    أضف البادئة string لكل الرموز في ملف المخرجات.

--prefix-sections=string
    أضف البادئة string لكل أسماء الأقسام في ملف المخرجات.

--prefix-alloc-sections=string
    أضف البادئة string لكل أسماء جميع الأقسام المخصصة في ملف المخرجات.

--add-gnu-debuglink=path-to-file
    ينشئ قسم .gnu_debuglink الذي يحتوي على مرجع إلى path-to-file ويضيفه إلى ملف المخرجات. ملاحظة: يجب أن يكون الملف الموجود في path-to-file موجودًا. يتضمن جزء من عملية إضافة قسم .gnu_debuglink تضمين مجموع فحص لمحتويات ملف معلومات التنقيح داخل القسم.

    إذا بُني ملف معلومات التنقيح في موقع ما ولكن سيُنصب في وقت لاحق في موقع مختلف، فلا تستخدم المسار إلى الموقع المنصب. سيفشل خيار --add-gnu-debuglink لأن الملف المنصب غير موجود بعد. بدلاً من ذلك، ضع ملف معلومات التنقيح في الدليل الحالي واستخدم خيار --add-gnu-debuglink بدون أي مكونات دليل، هكذا:

             objcopy --add-gnu-debuglink=foo.debug

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

    •   نفس الدليل الذي يحتوي على الملف التنفيذي.

    •   دليل فرعي من الدليل الذي يحتوي على الملف التنفيذي يسمى .debug.

    •   دليل تنقيح عام مثل /usr/lib/debug.

    طالما نُصب ملف معلومات التنقيح في أحد هذه المواقع قبل تشغيل منقح الأخطاء، فيجب أن يعمل كل شيء بشكل صحيح.

--keep-section-symbols
    عند تجريد ملف، ربما باستخدام --strip-debug أو --strip-unneeded، احتفظ بأي رموز تحدد أسماء الأقسام، والتي كانت ستُجرد لولا ذلك.

--keep-file-symbols
    عند تجريد ملف، ربما باستخدام --strip-debug أو --strip-unneeded، احتفظ بأي رموز تحدد أسماء ملفات المصدر، والتي كانت ستُجرد لولا ذلك.

--only-keep-debug
    جرد ملفًا، مع إزالة محتويات أي أقسام لن تُجرد بواسطة --strip-debug وترك أقسام التنقيح سليمة. في ملفات ELF، يحافظ هذا على جميع أقسام الملاحظات في المخرجات.

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

    القصد هو استخدام هذا الخيار بالاشتراك مع --add-gnu-debuglink لإنشاء ملف تنفيذي من جزأين. الأول ثنائي مجرد يشغل مساحة أقل في ذاكرة الوصول العشوائي وفي التوزيعة، والثاني ملف معلومات تنقيح لا يُحتاج إليه إلا إذا كانت قدرات التنقيح مطلوبة. الإجراء المقترح لإنشاء هذه الملفات هو كما يلي:

    1.  يربط الملف التنفيذي كالمعتاد. بافتراض أنه يسمى "foo" عندها...

    2.  شغل "objcopy --only-keep-debug foo foo.dbg" لإنشاء ملف يحتوي على معلومات تنقيح الأخطاء.

    3.  شغل "objcopy --strip-debug foo" لإنشاء ملف تنفيذي مجرد.

    4.  شغل "objcopy --add-gnu-debuglink=foo.dbg foo" لإضافة رابط لمعلومات تنقيح الأخطاء في الملف التنفيذي المزال.

    ملاحظة---اختيار ".dbg" كلاحقة لملف معلومات التنقيح هو أمر اعتباطي. وأيضًا خطوة "--only-keep-debug" هي اختيارية. يمكنك بدلاً من ذلك القيام بهذا:

    1.  يربط الملف التنفيذي كالمعتاد.

    2.  انسخ "foo" إلى "foo.full".

    3.  شغل "objcopy --strip-debug foo".

    4.  شغل "objcopy --add-gnu-debuglink=foo.full foo".

    أي أن الملف الذي يشير إليه --add-gnu-debuglink يمكن أن يكون الملف التنفيذي بالكامل. ليس بالضرورة أن يكون ملفًا أُنشئ بواسطة خيار --only-keep-debug.

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

--strip-dwo
    أزل محتويات جميع أقسام DWARF .dwo، مع ترك أقسام التنقيح المتبقية وجميع الرموز سليمة. هذا الخيار مخصص للاستخدام من قبل المترجم كجزء من خيار -gsplit-dwarf، الذي يفصل معلومات التنقيح بين ملف .o وملف .dwo منفصل. ينتج المترجم كل معلومات التنقيح في نفس الملف، ثم يستخدم خيار --extract-dwo لنسخ أقسام .dwo إلى ملف .dwo، ثم خيار --strip-dwo لإزالة تلك الأقسام من ملف .o الأصلي.

--extract-dwo
    استخرج محتويات جميع أقسام DWARF .dwo. انظر خيار --strip-dwo لمزيد من المعلومات.

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

--heap احتياطي
--heap احتياطي,إيداع
    حدد عدد بايتات الذاكرة المراد احتياطها (وإيداعها اختياريًا) لتُستخدم ككومة لهذا البرنامج. [هذا الخيار خاص بأهداف PE.]

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

--section-alignment num
    [هذا الخيار خاص بأهداف PE.]

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

    ملاحظة - إذا لم تعد عناوين LMA أو VMA للقسم محاذية، ولم تُضبط هذه العناوين عبر خيارات --set-section-lma أو --set-section-vma، وكان الملف قد أُعيد توطينه بالكامل، فستُصدر رسالة تحذير. وسيكون الأمر متروكًا للمستخدم ليقرر ما إذا كانت LMA و VMA بحاجة إلى تحديث.

--stack احتياطي
--stack احتياطي,إيداع
    حدد عدد بايتات الذاكرة المراد احتياطها (وإيداعها اختياريًا) لتُستخدم ككدسة لهذا البرنامج. [هذا الخيار خاص بأهداف PE.]

--subsystem أي
--subsystem أي:رئيس
--subsystem أي:رئيس.فرعي
    يحدد النظام الفرعي الذي سيُنفذ برنامجك تحته. القيم القانونية لـ أي هي "native"، و "windows"، و "console"، و "posix"، و "efi-app"، و "efi-bsd"، و "efi-rtd"، و "sal-rtd"، و "xbox". يمكنك اختياريًا ضبط إصدار النظام الفرعي أيضًا. تُقبل القيم العددية أيضًا لـ أي. [هذا الخيار خاص بأهداف PE.]

--extract-symbol
    يُبقي على علامات وأرقام أقسام الملف ولكنه يزيل كافة بيانات الأقسام. وبالتحديد، هذا الخيار:

    •   يُزيل محتويات جميع الأقسام.

    •   يضبط حجم كل قسم على الصفر.

    •   يضبط عنوان بدء الملف على الصفر.

    يُستخدم هذا الخيار لبناء ملف .sym لنواة VxWorks. يمكن أن يكون أيضًا وسيلة مفيدة لتقليل حجم ملف مدخلات الرابط --just-symbols.

--compress-debug-sections
    يضغط أقسام تنقيح DWARF باستخدام zlib مع SHF_COMPRESSED من ELF ABI. ملاحظة - إذا كان الضغط سيجعل القسم أكبر بالفعل، فلن يُضغط.

--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
--compress-debug-sections=zstd
    بالنسبة لملفات ELF، تتحكم هذه الخيارات في كيفية ضغط أقسام تنقيح DWARF. --compress-debug-sections=none يكافئ --decompress-debug-sections. الخياران --compress-debug-sections=zlib و --compress-debug-sections=zlib-gabi يكافئان --compress-debug-sections. يضغط --compress-debug-sections=zlib-gnu أقسام تنقيح DWARF باستخدام تنسيق zlib-gnu المهجور. تُغير أسماء أقسام التنقيح لتبدأ بـ .zdebug. يضغط --compress-debug-sections=zstd أقسام تنقيح DWARF باستخدام zstd. ملاحظة - إذا كان الضغط سيجعل القسم أكبر بالفعل، فلن يُضغط ولن يُعاد تسميته.

--decompress-debug-sections
    يفك ضغط أقسام تنقيح DWARF. بالنسبة لقسم .zdebug، يُستعاد الاسم الأصلي.

--elf-stt-common=yes
--elf-stt-common=no
    بالنسبة لملفات ELF، تتحكم هذه الخيارات فيما إذا كان يجب تحويل الرموز المشتركة إلى النوع "STT_COMMON" أو النوع "STT_OBJECT". يُحوّل --elf-stt-common=yes نوع الرمز المشترك إلى "STT_COMMON". بينما يُحوّل --elf-stt-common=no نوع الرمز المشترك إلى "STT_OBJECT".

--merge-notes
--no-merge-notes
    بالنسبة لملفات ELF، حاوِل (أو لا تحاول) تقليل حجم أي أقسام من نوع SHT_NOTE عن طريق إزالة الملاحظات المكررة.

-V
--version
    أظهر رقم إصدار objcopy.

--verilog-data-width=البايتات
    لمخرجات Verilog، يتحكم هذا الخيار في عدد البايتات المحولة لكل عنصر بيانات مخرجات. يتحكم هدف المدخلات في ترتيب البايتات (endianness) للتحويل.

-v
--verbose
    مخرجات مسهبة: اسرد جميع ملفات الكائنات التي عُدّلت. في حالة الأرشيفات، يسرد objcopy -V جميع أعضاء الأرشيف.

--help
    أظهر ملخصًا لخيارات objcopy.

--info
    اعرض قائمة توضح جميع المعماريات وتنسيقات الكائنات المتاحة.

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

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

انظر أيضًا
ld(1)، و objdump(1)، ومدخلات Info لـ binutils.

حقوق النسخ
حقوق الطبع والنشر (c) لعام 1991-2026 لمؤسسة البرمجيات الحرة، المحدودة.

يُمنح الإذن بنسخ وتوزيع و/أو تعديل هذا المستند بموجب شروط رخصة جنو للوثائق الحرة (GNU Free Documentation License)، الإصدار 1.3 أو أي إصدار لاحق تنشره مؤسسة البرمجيات الحرة؛ مع عدم وجود أقسام ثابتة، وبدون نصوص غلاف أمامي، وبدون نصوص غلاف خلفي. نُسخة من الرخصة مضمنة في القسم المعنون "GNU Free Documentation License".

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.