.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "OBJCOPY 1" .TH OBJCOPY 1 2026-08-03 binutils-2.47 "GNU Development Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" objcopy \- کپی و تبدیل فایل‌های شیء .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR] [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR] [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR] [\fB\-S\fR|\fB\-\-strip\-all\fR] [\fB\-g\fR|\fB\-\-strip\-debug\fR] [\fB\-\-strip\-unneeded\fR] [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR] [\fB\-\-keep\-file\-symbols\fR] [\fB\-\-keep\-section\-symbols\fR] [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR] [\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR] [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR] [\fB\-\-localize\-hidden\fR] [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR] [\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR] [\fB\-\-globalize\-symbols=\fR\fIfilename\fR] [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR] [\fB\-w\fR|\fB\-\-wildcard\fR] [\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR|\fB\-\-discard\-locals\fR] [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR] [\fB\-i\fR [\fIbreadth\fR]|\fB\-\-interleave\fR[=\fIbreadth\fR]] [\fB\-\-interleave\-width=\fR\fIwidth\fR] [\fB\-j\fR \fIsectionpattern\fR|\fB\-\-only\-section=\fR\fIsectionpattern\fR] [\fB\-R\fR \fIsectionpattern\fR|\fB\-\-remove\-section=\fR\fIsectionpattern\fR] [\fB\-\-keep\-section=\fR\fIsectionpattern\fR] [\fB\-\-remove\-relocations=\fR\fIsectionpattern\fR] [\fB\-\-strip\-section\-headers\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR] [\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR] [\fB\-U\fR|\fB\-\-disable\-deterministic\-archives\fR] [\fB\-\-debugging\fR] [\fB\-\-gap\-fill=\fR\fIval\fR] [\fB\-\-pad\-to=\fR\fIaddress\fR] [\fB\-\-set\-start=\fR\fIval\fR] [\fB\-\-adjust\-start=\fR\fIincr\fR] [\fB\-\-change\-addresses=\fR\fIincr\fR] [\fB\-\-change\-section\-address\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR] [\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR=\fIflags\fR] [\fB\-\-set\-section\-alignment\fR \fIsectionpattern\fR=\fIalign\fR] [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR] [\fB\-\-dump\-section\fR \fIsectionname\fR=\fIfilename\fR] [\fB\-\-update\-section\fR \fIsectionname\fR=\fIfilename\fR] [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]] [\fB\-\-long\-section\-names\fR {enable,disable,keep}] [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR] [\fB\-\-reverse\-bytes=\fR\fInum\fR] [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR] [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR] [\fB\-\-redefine\-syms=\fR\fIfilename\fR] [\fB\-\-weaken\fR] [\fB\-\-keep\-symbols=\fR\fIfilename\fR] [\fB\-\-strip\-symbols=\fR\fIfilename\fR] [\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR] [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR] [\fB\-\-localize\-symbols=\fR\fIfilename\fR] [\fB\-\-weaken\-symbols=\fR\fIfilename\fR] [\fB\-\-binary\-symbol\-prefix\fR\fIstring\fR] [\fB\-\-add\-symbol\fR \fIname\fR=[\fIsection\fR:]\fIvalue\fR[,\fIflags\fR]] [\fB\-\-alt\-machine\-code=\fR\fIindex\fR] [\fB\-\-prefix\-symbols=\fR\fIstring\fR] [\fB\-\-prefix\-sections=\fR\fIstring\fR] [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR] [\fB\-\-add\-gnu\-debuglink=\fR\fIpath\-to\-file\fR] [\fB\-\-only\-keep\-debug\fR] [\fB\-\-strip\-dwo\fR] [\fB\-\-extract\-dwo\fR] [\fB\-\-extract\-symbol\fR] [\fB\-\-writable\-text\fR] [\fB\-\-readonly\-text\fR] [\fB\-\-pure\fR] [\fB\-\-impure\fR] [\fB\-\-file\-alignment=\fR\fInum\fR] [\fB\-\-heap=\fR\fIreserve\fR[,\fIcommit\fR]] [\fB\-\-image\-base=\fR\fIaddress\fR] [\fB\-\-section\-alignment=\fR\fInum\fR] [\fB\-\-stack=\fR\fIreserve\fR[,\fIcommit\fR]] [\fB\-\-subsystem=\fR\fIwhich\fR:\fImajor\fR.\fIminor\fR] [\fB\-\-compress\-debug\-sections\fR] [\fB\-\-decompress\-debug\-sections\fR] [\fB\-\-elf\-stt\-common=\fR\fIval\fR] [\fB\-\-merge\-notes\fR] [\fB\-\-no\-merge\-notes\fR] [\fB\-\-verilog\-data\-width=\fR\fIval\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fB\-\-help\fR] [\fB\-\-info\fR] \fIinfile\fR [\fIoutfile\fR].SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" ابزار GNU \fBobjcopy\fR محتویات یک فایل شیء (object file) را در فایلی دیگر کپی می‌کند. \fBobjcopy\fR برای خواندن و نوشتن فایل‌های شیء از کتابخانهٔ GNU BFD استفاده می‌کند. این ابزار می‌تواند فایل شیء مقصد را در قالبی متفاوت از فایل شیء مبدأ بنویسد. رفتار دقیق \fBobjcopy\fR توسط گزینه‌های خط فرمان کنترل می‌شود. توجه داشته باشید که \fBobjcopy\fR باید بتواند یک فایل کاملاً پیوندخورده (fully linked) را بین هر دو قالبی کپی کند. با این حال، کپی کردن یک فایل شیء بازتخصیص‌پذیر (relocatable) بین هر دو قالبی ممکن است مطابق انتظار عمل نکند. .PP \&\fBobjcopy\fR برای انجام تبدیل‌های خود فایل‌های موقت ایجاد کرده و پس از اتمام کار آن‌ها را حذف می‌کند. \fBobjcopy\fR از BFD برای انجام تمام کارهای تبدیل استفاده می‌کند؛ این ابزار به تمام قالب‌های شرح‌داده‌شده در BFD دسترسی دارد و بنابراین می‌تواند بیشتر قالب‌ها را بدون نیاز به مشخص کردن صریح، شناسایی کند. .PP \&\fBobjcopy\fR می‌تواند برای تولید S\-recordها با استفاده از یک هدف خروجیِ \fBsrec\fR (برای مثال استفاده از \fB\-O srec\fR) به کار رود. .PP \&\fBobjcopy\fR می‌تواند برای تولید یک فایل باینری خام با استفاده از هدف خروجیِ \fBbinary\fR (برای مثال استفاده از \fB\-O binary\fR) به کار رود. هنگامی که \&\fBobjcopy\fR یک فایل باینری خام تولید می‌کند، اساساً یک رونوشت حافظه (memory dump) از محتویات فایل شیء ورودی ایجاد خواهد کرد. تمامی نمادها و اطلاعات جابه‌جایی (relocation) دور ریخته خواهند شد. رونوشت حافظه از نشانی بارگذاری پایین‌ترین بخش (section) کپی‌شده در فایل خروجی آغاز خواهد شد. .PP هنگام تولید یک S\-record یا یک فایل باینری خام، استفاده از \fB\-S\fR برای حذف بخش‌های حاوی اطلاعات اشکال‌زدایی (debugging) می‌تواند مفید باشد. در برخی موارد، \fB\-R\fR برای حذف بخش‌هایی که حاوی اطلاعات غیرضروری برای فایل باینری هستند سودمند خواهد بود. .PP توجه: \fBobjcopy\fR قادر به تغییر ترتیب بایت‌ها (endianness) در فایل‌های ورودی خود نیست. اگر قالب ورودی ترتیب بایتی داشته باشد (برخی قالب‌ها ندارند)، \&\fBobjcopy\fR فقط می‌تواند ورودی‌ها را به قالب‌هایی کپی کند که همان ترتیب بایت را دارند یا اصلاً ترتیب بایت ندارند (مانند \fBsrec\fR). (با این حال، گزینهٔ \fB\-\-reverse\-bytes\fR را ببینید.) .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fIinfile\fR 4 .IX Item "infile" .PD 0 .IP \fIoutfile\fR 4 .IX Item "outfile" .PD به‌ترتیب فایل‌های ورودی و خروجی. اگر \fIoutfile\fR را مشخص نکنید، \fBobjcopy\fR یک فایل موقت ایجاد کرده و با تغییر نام مخرب، آن را با نام \fIinfile\fR جایگزین می‌کند. .IP "\fB\-I\fR \fIbfdname\fR" 4 .IX Item "-I bfdname" .PD 0 .IP \fB\-\-input\-target=\fR\fIbfdname\fR 4 .IX Item "--input-target=bfdname" .PD قالب شیء فایل مبدأ را به‌جای تلاش برای استنتاج آن، \fIbfdname\fR در نظر می‌گیرد. .IP "\fB\-O\fR \fIbfdname\fR" 4 .IX Item "-O bfdname" .PD 0 .IP \fB\-\-output\-target=\fR\fIbfdname\fR 4 .IX Item "--output-target=bfdname" .PD فایل خروجی را با استفاده از قالب شیء \fIbfdname\fR می‌نویسد. .IP "\fB\-F\fR \fIbfdname\fR" 4 .IX Item "-F bfdname" .PD 0 .IP \fB\-\-target=\fR\fIbfdname\fR 4 .IX Item "--target=bfdname" .PD از \fIbfdname\fR به‌عنوان قالب شیء هم برای فایل ورودی و هم برای فایل خروجی استفاده می‌کند؛ یعنی داده‌ها را بدون هیچ تبدیلی صرفاً از مبدأ به مقصد منتقل می‌کند. .IP "\fB\-B\fR \fIbfdarch\fR" 4 .IX Item "-B bfdarch" .PD 0 .IP \fB\-\-binary\-architecture=\fR\fIbfdarch\fR 4 .IX Item "--binary-architecture=bfdarch" .PD هنگام تبدیل یک فایل ورودیِ بدون معماری به یک فایل شیء مفید است. در این حالت، معماری خروجی می‌تواند روی \fIbfdarch\fR تنظیم شود. اگر فایل ورودی معماری شناخته‌شده‌ای داشته باشد، این گزینه نادیده گرفته می‌شود. شما می‌توانید با ارجاع به نمادهای ویژه‌ای که در طول فرایند تبدیل ایجاد می‌شوند، در داخل یک برنامه به این داده‌های باینری دسترسی پیدا کنید. این نمادها _binary_\fIobjfile\fR_start،‏ _binary_\fIobjfile\fR_end و _binary_\fIobjfile\fR_size نام دارند؛ برای مثال می‌توانید یک فایل تصویر را به یک فایل شیء تبدیل کرده و سپس در کد خود با استفاده از این نمادها به آن دسترسی پیدا کنید. .IP "\fB\-j\fR \fIsectionpattern\fR" 4 .IX Item "-j sectionpattern" .PD 0 .IP \fB\-\-only\-section=\fR\fIsectionpattern\fR 4 .IX Item "--only-section=sectionpattern" .PD تنها بخش‌های مشخص‌شده را از فایل ورودی به فایل خروجی کپی می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفادهٔ نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند. نویسه‌های عامه‌نما (wildcard) در \fIsectionpattern\fR پذیرفته می‌شوند. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، بخش‌های منطبق کپی نخواهند شد، حتی اگر استفادهٔ قبلی از \fB\-\-only\-section\fR در همان خط فرمان دستور به کپی کردن آن داده باشد. برای مثال: .Sp .Vb 1 \& \-\-only\-section=.text.* \-\-only\-section=!.text.foo .Ve .Sp تمامی بخش‌های منطبق بر \*(Aq.text.*\*(Aq را کپی خواهد کرد، اما بخش \*(Aq.text.foo\*(Aq را کپی نمی‌کند. .IP "\fB\-R\fR \fIsectionpattern\fR" 4 .IX Item "-R sectionpattern" .PD 0 .IP \fB\-\-remove\-section=\fR\fIsectionpattern\fR 4 .IX Item "--remove-section=sectionpattern" .PD هر بخشی را که با \fIsectionpattern\fR مطابقت داشته باشد از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفادهٔ نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند. نویسه‌های عامه‌نما در \fIsectionpattern\fR پذیرفته می‌شوند. استفادهٔ هم‌زمان از هر دو گزینهٔ \fB\-j\fR و \fB\-R\fR به رفتار تعریف‌نشده منجر می‌شود. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، بخش‌های منطبق حذف نخواهند شد، حتی اگر استفادهٔ قبلی از \fB\-\-remove\-section\fR در همان خط فرمان دستور به حذف آن داده باشد. برای مثال: .Sp .Vb 1 \& \-\-remove\-section=.text.* \-\-remove\-section=!.text.foo .Ve .Sp تمامی بخش‌های منطبق بر الگوی \*(Aq.text.*\*(Aq را حذف خواهد کرد، اما بخش \*(Aq.text.foo\*(Aq را حذف نمی‌کند. .IP \fB\-\-keep\-section=\fR\fIsectionpattern\fR 4 .IX Item "--keep-section=sectionpattern" هنگام حذف بخش‌ها از فایل خروجی، بخش‌هایی را که با \fIsectionpattern\fR مطابقت دارند نگه می‌دارد. .IP \fB\-\-remove\-relocations=\fR\fIsectionpattern\fR 4 .IX Item "--remove-relocations=sectionpattern" جابه‌جایی‌های غیرپویا (non\-dynamic relocations) را برای هر بخشی که با \fIsectionpattern\fR مطابقت دارد از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفادهٔ نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند؛ همچنین تلاش برای حذف یک بخش جابه‌جایی پویا مانند \fB.rela.plt\fR از یک فایل اجرایی یا کتابخانهٔ اشتراکی با استفاده از \fB\-\-remove\-relocations=.plt\fR کار نخواهد کرد. نویسه‌های عامه‌نما در \fIsectionpattern\fR پذیرفته می‌شوند. برای مثال: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* .Ve .Sp جابه‌جایی‌ها را برای تمامی بخش‌های منطبق بر الگوی \*(Aq.text.*\*(Aq حذف خواهد کرد. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، جابه‌جایی بخش‌های منطبق حذف نخواهد شد، حتی اگر استفادهٔ قبلی از \fB\-\-remove\-relocations\fR در همان خط فرمان موجب حذف آن‌ها می‌شد. برای مثال: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* \-\-remove\-relocations=!.text.foo .Ve .Sp تمامی جابه‌جایی‌های بخش‌های منطبق بر الگوی \*(Aq.text.*\*(Aq را حذف خواهد کرد، اما جابه‌جایی‌های بخش \*(Aq.text.foo\*(Aq را حذف نمی‌کند. .IP \fB\-\-strip\-section\-headers\fR 4 .IX Item "--strip-section-headers" سرآیندهای بخش را حذف می‌کند. این گزینه مخصوص فایل‌های ELF است. مستلزم \fB\-\-strip\-all\fR و \fB\-\-merge\-notes\fR است. .IP \fB\-S\fR 4 .IX Item "-S" .PD 0 .IP \fB\-\-strip\-all\fR 4 .IX Item "--strip-all" .PD اطلاعات جابه‌جایی و نمادها را از فایل مبدأ کپی نمی‌کند. همچنین بخش‌های اشکال‌زدایی را حذف می‌کند..IP \fB\-g\fR 4 .IX Item "-g" .PD 0 .IP \fB\-\-strip\-debug\fR 4 .IX Item "--strip-debug" .PD نمادها یا بخش‌های اشکال‌زدایی را از فایل مبدأ کپی نمی‌کند. .IP \fB\-\-strip\-unneeded\fR 4 .IX Item "--strip-unneeded" علاوه بر نمادها و بخش‌های اشکال‌زدایی حذف‌شده توسط \&\fB\-\-strip\-debug\fR، تمام نمادهایی را که برای پردازش بازآرایی (relocation) مورد نیاز نیستند حذف می‌کند. .IP "\fB\-K\fR \fIsymbolname\fR" 4 .IX Item "-K symbolname" .PD 0 .IP \fB\-\-keep\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--keep-symbol=symbolname" .PD هنگام حذف نمادها، نماد \fIsymbolname\fR را حفظ می‌کند، حتی اگر در حالت عادی حذف می‌شد. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP "\fB\-N\fR \fIsymbolname\fR" 4 .IX Item "-N symbolname" .PD 0 .IP \fB\-\-strip\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--strip-symbol=symbolname" .PD نماد \fIsymbolname\fR را از فایل مبدأ کپی نمی‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--strip-unneeded-symbol=symbolname" نماد \fIsymbolname\fR را از فایل مبدأ کپی نمی‌کند مگر آنکه برای یک بازآرایی مورد نیاز باشد. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP "\fB\-G\fR \fIsymbolname\fR" 4 .IX Item "-G symbolname" .PD 0 .IP \fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--keep-global-symbol=symbolname" .PD تنها نماد \fIsymbolname\fR را سراسری نگه می‌دارد. تمام نمادهای دیگر را برای فایل محلی می‌کند، به طوری که از بیرون قابل مشاهده نباشند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه: این گزینه نمی‌تواند همراه با گزینه‌های \fB\-\-globalize\-symbol\fR یا \&\fB\-\-globalize\-symbols\fR استفاده شود. .IP \fB\-\-localize\-hidden\fR 4 .IX Item "--localize-hidden" در یک شیء ELF، همه نمادهایی را که دید پنهان (hidden) یا داخلی (internal) دارند به عنوان محلی علامت‌گذاری می‌کند. این گزینه علاوه‌بر گزینه‌های محلی‌سازی مخصوص نماد مانند \fB\-L\fR اعمال می‌شود. .IP "\fB\-L\fR \fIsymbolname\fR" 4 .IX Item "-L symbolname" .PD 0 .IP \fB\-\-localize\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--localize-symbol=symbolname" .PD یک نماد سراسری یا ضعیف به نام \fIsymbolname\fR را به یک نماد محلی تبدیل می‌کند تا از بیرون قابل مشاهده نباشد. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه \- نمادهای یکتا (unique) تبدیل نمی‌شوند. .IP "\fB\-W\fR \fIsymbolname\fR" 4 .IX Item "-W symbolname" .PD 0 .IP \fB\-\-weaken\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--weaken-symbol=symbolname" .PD نماد \fIsymbolname\fR را ضعیف (weak) می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-binary\-symbol\-prefix=\fR\fIstring\fR 4 .IX Item "--binary-symbol-prefix=string" هنگامی که با \fB\-\-input\-target=binary\fR استفاده می‌شود، \fIstring\fR را به عنوان نام پایه برای نمادهای تولیدشده برای فایل ورودی تنظیم می‌کند. این نمادها عبارتند از: .Sp .Vb 3 \& _start \& _end \& _size .Ve .Sp به‌طور پیش‌فرض، گرداننده ورودی دودویی نام پیشوند نماد را از نسخه درهم‌ریخته (mangled) نام فایل ورودی و پیشوند _binary مشتق می‌کند. این گزینه امکان مشخص کردن صریح آن را فراهم می‌سازد. .IP \fB\-\-globalize\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--globalize-symbol=symbolname" به نماد \fIsymbolname\fR حوزه سراسری می‌دهد تا در خارج از فایلی که در آن تعریف شده است قابل مشاهده باشد. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه: این گزینه نمی‌تواند همراه با گزینه‌های \fB\-G\fR یا \fB\-\-keep\-global\-symbol\fR استفاده شود. .IP \fB\-w\fR 4 .IX Item "-w" .PD 0 .IP \fB\-\-wildcard\fR 4 .IX Item "--wildcard" .PD استفاده از عبارات باقاعده را در \fIsymbolname\fRهای به‌کاررفته در سایر گزینه‌های خط فرمان مجاز می‌سازد. عملگرهای علامت سؤال (?)، ستاره (*)، ممیز وارونه (\e) و قلاب‌ها ([]) می‌توانند در هر کجای نام نماد به کار روند. اگر نویسه نخست نام نماد علامت تعجب (!) باشد، مفهوم گزینه برای آن نماد معکوس می‌شود. برای مثال: .Sp .Vb 1 \& \-w \-W !foo \-W fo* .Ve .Sp باعث می‌شود objcopy تمام نمادهایی را که با "fo" شروع می‌شوند به جز نماد "foo" ضعیف کند. .IP \fB\-x\fR 4 .IX Item "-x" .PD 0 .IP \fB\-\-discard\-all\fR 4 .IX Item "--discard-all" .PD نمادهای غیرسراسری را از فایل مبدأ کپی نمی‌کند. .IP \fB\-X\fR 4 .IX Item "-X" .PD 0 .IP \fB\-\-discard\-locals\fR 4 .IX Item "--discard-locals" .PD نمادهای محلی تولیدشده توسط کامپایلر را کپی نمی‌کند. (این نمادها معمولاً با \fBL\fR یا \fB.\fR آغاز می‌شوند.) .IP "\fB\-b\fR \fIbyte\fR" 4 .IX Item "-b byte" .PD 0 .IP \fB\-\-byte=\fR\fIbyte\fR 4 .IX Item "--byte=byte" .PD اگر درهم‌بافی (interleaving) از طریق گزینه \fB\-\-interleave\fR فعال شده باشد، محدوده بایت‌های نگه‌داشته‌شده را از بایت \fIbyte\fRام آغاز می‌کند. \&\fIbyte\fR می‌تواند در محدوده 0 تا \fIbreadth\fR\-1 باشد، که در آن \&\fIbreadth\fR مقدار ارائه‌شده توسط گزینه \fB\-\-interleave\fR است. .IP "\fB\-i [\fR\fIbreadth\fR\fB]\fR" 4 .IX Item "-i [breadth]" .PD 0 .IP \fB\-\-interleave[=\fR\fIbreadth\fR\fB]\fR 4 .IX Item "--interleave[=breadth]" .PD تنها یک محدوده را از هر \fIbreadth\fR بایت کپی می‌کند. (داده‌های سرآیند تحت تأثیر قرار نمی‌گیرند). این‌که کدام بایت در محدوده کپی را آغاز کند با گزینه \fB\-\-byte\fR انتخاب می‌شود. پهنای محدوده را با گزینه \&\fB\-\-interleave\-width\fR مشخص کنید. .Sp این گزینه برای ایجاد فایل‌ها جهت برنامه‌ریزی ROM مفید است. این گزینه معمولاً با یک هدف خروجی \f(CW\*(C`srec\*(C'\fR استفاده می‌شود. توجه داشته باشید که \&\fBobjcopy\fR در صورتی که گزینه \&\fB\-\-byte\fR را نیز تعیین نکرده باشید، خطا خواهد گرفت. .Sp عرض پیش‌فرض درهم‌بافی 4 است؛ بنابراین با تنظیم \fB\-\-byte\fR روی 0، \&\fBobjcopy\fR نخستین بایت از هر چهار بایت را از ورودی به خروجی کپی خواهد کرد. .IP \fB\-\-interleave\-width=\fR\fIwidth\fR 4 .IX Item "--interleave-width=width" هنگامی که همراه با گزینه \fB\-\-interleave\fR استفاده شود، هر بار \fIwidth\fR بایت کپی می‌کند. آغاز محدوده بایت‌های مورد کپی با گزینه \fB\-\-byte\fR و اندازه محدوده با گزینه \fB\-\-interleave\fR تعیین می‌شود. .Sp مقدار پیش‌فرض برای این گزینه 1 است. مجموع مقدار \fIwidth\fR و مقدار \fIbyte\fR تعیین‌شده توسط گزینه \fB\-\-byte\fR نباید از عرض درهم‌بافی تعیین‌شده توسط گزینه \fB\-\-interleave\fR تجاوز کند. .Sp این گزینه می‌تواند برای ساخت ایمیج‌ها برای دو حافظه فلش ۱۶ بیتی درهم‌بافته در یک گذرگاه ۳۲ بیتی، با ارسال \fB\-b 0 \-i 4 \-\-interleave\-width=2\fR و \fB\-b 2 \-i 4 \-\-interleave\-width=2\fR به دو دستور \fBobjcopy\fR استفاده شود. اگر ورودی \*(Aq12345678\*(Aq باشد، خروجی‌ها به ترتیب \&\*(Aq1256\*(Aq و \*(Aq3478\*(Aq خواهند بود. .IP \fB\-p\fR 4 .IX Item "-p" .PD 0 .IP \fB\-\-preserve\-dates\fR 4 .IX Item "--preserve-dates" .PD تاریخ‌های دسترسی و تغییر فایل خروجی را مشابه تاریخ‌های فایل ورودی تنظیم می‌کند. .Sp این گزینه همچنین تاریخی را که در سرآیند یک فایل با قالب PE ذخیره شده است کپی می‌کند، مگر اینکه متغیر محیطی SOURCE_DATE_EPOCH تعریف شده باشد. در صورت تعریف، این متغیر به عنوان تاریخ ذخیره‌شده در سرآیند استفاده می‌شود که به صورت تعداد ثانیه‌های سپری‌شده از مبدأ یونیکس (Unix epoch) تفسیر خواهد شد. .IP \fB\-D\fR 4 .IX Item "-D" .PD 0 .IP \fB\-\-enable\-deterministic\-archives\fR 4 .IX Item "--enable-deterministic-archives".PD در حالت \fIdeterministic\fR (قطعی) عمل می‌کند. هنگام کپی کردن اعضای آرشیو و نوشتن نمایهٔ آرشیو، برای UIDها، GIDها و برچسب‌های زمانی از صفر استفاده می‌کند و برای همهٔ فایل‌ها حالت‌های فایل (file modes) یکسانی را به کار می‌برد. .Sp اگر \fIbinutils\fR با \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد، این حالت به‌طور پیش‌فرض فعال است. می‌توان آن را با گزینهٔ \fB\-U\fR در زیر غیرفعال کرد. .IP \fB\-U\fR 4 .IX Item "-U" .PD 0 .IP \fB\-\-disable\-deterministic\-archives\fR 4 .IX Item "--disable-deterministic-archives" .PD در حالت \fIdeterministic\fR \fIعمل نمی‌کند\fR. این برعکس گزینهٔ \fB\-D\fR در بالا است: هنگام کپی کردن اعضای آرشیو و نوشتن نمایهٔ آرشیو، از مقادیر واقعی UID، GID، برچسب زمانی و حالت فایل آن‌ها استفاده می‌کند. .Sp این حالت پیش‌فرض است مگر اینکه \fIbinutils\fR با \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد. .IP \fB\-\-debugging\fR 4 .IX Item "--debugging" در صورت امکان، اطلاعات اشکال‌زدایی را تبدیل می‌کند. این حالت پیش‌فرض نیست زیرا تنها قالب‌های اشکال‌زدایی خاصی پشتیبانی می‌شوند، و فرایند تبدیل می‌تواند زمان‌بر باشد. .IP "\fB\-\-gap\-fill\fR \fIval\fR" 4 .IX Item "--gap-fill val" شکاف‌های بین بخش‌ها را با \fIval\fR پر می‌کند. این عملیات بر \fIآدرس بارگذاری\fR (LMA) بخش‌ها اعمال می‌شود. این کار با افزایش اندازهٔ بخشی که آدرس پایین‌تری دارد و پر کردن فضای خالی ایجادشده با \fIval\fR انجام می‌پذیرد. .IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4 .IX Item "--pad-to address" فایل خروجی را تا آدرس بارگذاری \fIaddress\fR پد (pad) می‌کند. این کار با افزایش اندازهٔ آخرین بخش انجام می‌شود. فضای اضافی با مقدار مشخص‌شده توسط \fB\-\-gap\-fill\fR (پیش‌فرض صفر) پر می‌شود. .IP "\fB\-\-set\-start\fR \fIval\fR" 4 .IX Item "--set-start val" آدرس شروع (که به عنوان آدرس نقطهٔ ورود یا entry address نیز شناخته می‌شود) فایل جدید را روی \fIval\fR تنظیم می‌کند. همهٔ قالب‌های فایل شیء (object file) از تنظیم آدرس شروع پشتیبانی نمی‌کنند. .IP "\fB\-\-change\-start\fR \fIincr\fR" 4 .IX Item "--change-start incr" .PD 0 .IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4 .IX Item "--adjust-start incr" .PD آدرس شروع (که به عنوان آدرس نقطهٔ ورود نیز شناخته می‌شود) را با افزودن \&\fIincr\fR تغییر می‌دهد. همهٔ قالب‌های فایل شیء از تنظیم آدرس شروع پشتیبانی نمی‌کنند. .IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4 .IX Item "--change-addresses incr" .PD 0 .IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4 .IX Item "--adjust-vma incr" .PD آدرس‌های VMA و LMA همهٔ بخش‌ها و همچنین آدرس شروع را با افزودن \fIincr\fR تغییر می‌دهد. برخی قالب‌های فایل شیء اجازه نمی‌دهند آدرس بخش‌ها به‌صورت دلخواه تغییر داده شود. توجه داشته باشید که این کار بخش‌ها را بازنشانی (relocate) نمی‌کند؛ اگر برنامه انتظار داشته باشد که بخش‌ها در یک آدرس مشخص بارگذاری شوند، و از این گزینه برای تغییر بخش‌ها به‌گونه‌ای استفاده شود که در آدرس دیگری بارگذاری شوند، ممکن است برنامه با شکست مواجه شود. .IP "\fB\-\-change\-section\-address\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-address sectionpattern{=,+,-}val" .PD 0 .IP "\fB\-\-adjust\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--adjust-section-vma sectionpattern{=,+,-}val" .PD هر دو آدرس VMA و LMA هر بخشی که با \fIsectionpattern\fR مطابقت دارد را تنظیم کرده یا تغییر می‌دهد. اگر از \fB=\fR استفاده شود، آدرس بخش روی \fIval\fR تنظیم می‌شود. در غیر این صورت، \fIval\fR به آدرس بخش اضافه یا از آن کم می‌شود. توضیحات ارائه‌شده در بخش \&\fB\-\-change\-addresses\fR در بالا را ببینید. اگر \fIsectionpattern\fR با هیچ بخشی در فایل ورودی مطابقت نداشته باشد، یک هشدار صادر خواهد شد، مگر اینکه از \&\fB\-\-no\-change\-warnings\fR استفاده شود. .IP "\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-lma sectionpattern{=,+,-}val" آدرس LMA هر بخشی که با \&\fIsectionpattern\fR مطابقت دارد را تنظیم کرده یا تغییر می‌دهد. آدرس LMA آدرسی است که بخش در هنگام بارگذاری برنامه، در آن آدرس در حافظه قرار می‌گیرد. به‌طور معمول این آدرس با آدرس VMA، که آدرس بخش در زمان اجرای برنامه است، یکسان است؛ اما در برخی سیستم‌ها، به‌ویژه در سیستم‌هایی که برنامه در ROM نگهداری می‌شود، این دو می‌توانند متفاوت باشند. اگر از \fB=\fR استفاده شود، آدرس بخش روی \fIval\fR تنظیم می‌شود. در غیر این صورت، \&\fIval\fR به آدرس بخش اضافه یا از آن کم می‌شود. توضیحات ارائه‌شده در بخش \fB\-\-change\-addresses\fR در بالا را ببینید. اگر \&\fIsectionpattern\fR با هیچ بخشی در فایل ورودی مطابقت نداشته باشد، یک هشدار صادر خواهد شد، مگر اینکه از \fB\-\-no\-change\-warnings\fR استفاده شود. .IP "\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-vma sectionpattern{=,+,-}val" آدرس VMA هر بخشی که با \&\fIsectionpattern\fR مطابقت دارد را تنظیم کرده یا تغییر می‌دهد. آدرس VMA آدرسی است که پس از شروع اجرای برنامه، بخش در آن مستقر خواهد شد. به‌طور معمول این آدرس با آدرس LMA، که آدرس بارگذاری بخش در حافظه است، یکسان است؛ اما در برخی سیستم‌ها، به‌ویژه سیستم‌هایی که برنامه در ROM نگهداری می‌شود، این دو می‌توانند متفاوت باشند. اگر از \fB=\fR استفاده شود، آدرس بخش روی \&\fIval\fR تنظیم می‌شود. در غیر این صورت، \fIval\fR به آدرس بخش اضافه یا از آن کم می‌شود. توضیحات ارائه‌شده در بخش \fB\-\-change\-addresses\fR در بالا را ببینید. اگر \fIsectionpattern\fR با هیچ بخشی در فایل ورودی مطابقت نداشته باشد، یک هشدار صادر خواهد شد، مگر اینکه از \&\fB\-\-no\-change\-warnings\fR استفاده شود. .Sp نکته \- تغییر VMA بخش‌ها در یک باینری کاملاً پیوند خورده (fully linked) می‌تواند خطرناک باشد، زیرا ممکن است کدهایی وجود داشته باشند که انتظار دارند بخش‌ها در آدرس قدیمی خود قرار گرفته باشند. .IP \fB\-\-change\-warnings\fR 4 .IX Item "--change-warnings" .PD 0 .IP \fB\-\-adjust\-warnings\fR 4 .IX Item "--adjust-warnings" .PD اگر از \fB\-\-change\-section\-address\fR یا \fB\-\-change\-section\-lma\fR یا \&\fB\-\-change\-section\-vma\fR استفاده شود، و الگوی بخش با هیچ بخشی مطابقت نداشته باشد، هشداری صادر می‌کند. این حالت پیش‌فرض است. .IP \fB\-\-no\-change\-warnings\fR 4 .IX Item "--no-change-warnings" .PD 0 .IP \fB\-\-no\-adjust\-warnings\fR 4 .IX Item "--no-adjust-warnings" .PD در صورت استفاده از \fB\-\-change\-section\-address\fR یا \&\fB\-\-adjust\-section\-lma\fR یا \fB\-\-adjust\-section\-vma\fR، حتی اگر الگوی بخش با هیچ بخشی مطابقت نداشته باشد، هشداری صادر نمی‌کند. .IP "\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR\fB=\fR\fIflags\fR" 4 .IX Item "--set-section-flags sectionpattern=flags" پرچم‌های هر بخشی که با \fIsectionpattern\fR مطابقت دارد را تنظیم می‌کند. آرگومان \&\fIflags\fR یک رشته از نام‌های پرچم است که با کاما از هم جدا شده‌اند. نام‌های پذیرفته‌شده عبارتند از \fBalloc\fR، \fBcontents\fR، \fBload\fR، \&\fBnoload\fR، \fBreadonly\fR، \fBcode\fR، \fBdata\fR، \fBrom\fR، \&\fBexclude\fR، \fBshare\fR، \fBdebug\fR و \fBlarge\fR. می‌توانید پرچم \fBcontents\fR را برای بخشی که فاقد محتوا است تنظیم کنید، اما پاک کردن پرچم \fBcontents\fR از بخشی که دارای محتوا است مفهومی ندارد\-\-به‌جای آن صرفاً بخش را حذف کنید. همهٔ پرچم‌ها برای همهٔ قالب‌های فایل شیء معنا ندارند. به‌ویژه پرچم \&\fBshare\fR فقط برای فایل‌های با قالب COFF معنا دارد و برای فایل‌های با قالب ELF کاربردی ندارد. پرچم ویژهٔ ELF x86\-64 به نام \fBlarge\fR متناظر با SHF_X86_64_LARGE است. .IP "\fB\-\-set\-section\-alignment\fR \fIsectionpattern\fR\fB=\fR\fIalign\fR" 4 .IX Item "--set-section-alignment sectionpattern=align" هم‌ترازی را برای هر بخشی که با \fIsectionpattern\fR مطابقت دارد تنظیم می‌کند. \&\fIalign\fR هم‌ترازی را بر حسب بایت مشخص می‌کند و باید توانی از دو باشد، یعنی ۱، ۲، ۴، ۸... .Sp نکته \- تنظیم هم‌ترازی یک بخش به‌طور خودکار آدرس‌های LMA یا VMA آن را هم‌تراز نمی‌کند. اگر نیاز به تغییر آن‌ها نیز باشد، باید از گزینه‌های \&\fB\-\-change\-section\-lma\fR و/یا \fB\-\-change\-section\-vma\fR استفاده شود. همچنین توجه داشته باشید که تغییر VMAها می‌تواند در باینری‌های کاملاً پیوند خورده که در آن‌ها کدهایی انتظار دارند محتوای بخش‌ها در آدرس قدیمی آن‌ها قرار داشته باشد، مشکلاتی ایجاد کند. .IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--add-section sectionname=filename" هنگام کپی کردن فایل، یک بخش جدید به نام \fIsectionname\fR اضافه می‌کند. محتوای بخش جدید از فایل \fIfilename\fR گرفته می‌شود. اندازهٔ بخش برابر با اندازهٔ فایل خواهد بود. این گزینه فقط بر روی قالب‌های فایلی کار می‌کند که بتوانند از بخش‌هایی با نام‌های دلخواه پشتیبانی کنند. نکته \- ممکن است برای تنظیم مشخصه‌های بخش تازه‌ایجادشده، استفاده از گزینهٔ \fB\-\-set\-section\-flags\fR لازم باشد. .IP "\fB\-\-dump\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--dump-section sectionname=filename" محتوای بخشی به نام \fIsectionname\fR را درون فایل \&\fIfilename\fR قرار می‌دهد و هر محتوایی را که ممکن است قبلاً در آنجا بوده باشد، بازنویسی می‌کند. این گزینه معکوس گزینهٔ \fB\-\-add\-section\fR است. این گزینه مشابه گزینهٔ \fB\-\-only\-section\fR است، با این تفاوت که فایل قالب‌بندی‌شده‌ای ایجاد نمی‌کند، بلکه صرفاً محتوا را به صورت داده‌های باینری خام و بدون اعمال هیچ‌گونه بازنشانی تخلیه می‌کند. این گزینه را می‌توان بیش از یک بار مشخص کرد. .IP "\fB\-\-update\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--update-section sectionname=filename" محتوای موجود بخشی به نام \fIsectionname\fR را با محتوای فایل \fIfilename\fR جایگزین می‌کند. اندازهٔ بخش متناسب با اندازهٔ فایل تنظیم خواهد شد. پرچم‌های بخش برای \&\fIsectionname\fR بدون تغییر باقی می‌مانند. برای فایل‌های با قالب ELF، نگاشت بخش به سگمنت (segment) نیز بدون تغییر باقی خواهد ماند؛ چیزی که با استفاده از \fB\-\-remove\-section\fR و در ادامهٔ آن \&\fB\-\-add\-section\fR امکان‌پذیر نیست. این گزینه را می‌توان بیش از یک بار مشخص کرد. .Sp نکته \- این امکان وجود دارد که از \fB\-\-rename\-section\fR و \&\fB\-\-update\-section\fR برای به‌روزرسانی و تغییر نام هم‌زمان یک بخش در یک خط فرمان استفاده کرد. در این حالت، نام بخش اصلی را به \&\fB\-\-update\-section\fR، و نام بخش اصلی به همراه نام جدید را به \&\fB\-\-rename\-section\fR بدهید..IP "\fB\-\-add\-symbol\fR \fIname\fR\fB=[\fR\fIsection\fR\fB:]\fR\fIvalue\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--add-symbol name=[section:]value[,flags]" افزودن یک نماد جدید با نام \fIname\fR هنگام رونوشت فایل. این گزینه می‌تواند چندین بار مشخص شود. اگر \fIsection\fR مشخص شده باشد، نماد مرتبط با آن بخش و به صورت نسبی با آن خواهد بود، در غیر این صورت یک نماد ABS خواهد بود. مشخص کردن یک بخش تعریف‌نشده منجر به یک خطای مهلک خواهد شد. هیچ بررسی روی مقدار صورت نمی‌گیرد و دقیقاً همان‌گونه که مشخص شده دریافت می‌شود. پرچم‌های نماد می‌توانند مشخص شوند و همه پرچم‌ها برای همه قالب‌های فایل شیء معنادار نخواهند بود. به‌طور پیش‌فرض، نماد سراسری خواهد بود. پرچم ویژه \&\*(Aqbefore=\fIothersym\fR\*(Aq نماد جدید را پیش از \&\fIothersym\fR مشخص‌شده درج می‌کند، در غیر این صورت نماد(ها) به ترتیب ظاهر شدن در انتهای جدول نمادها افزوده خواهند شد. .IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--rename-section oldname=newname[,flags]" تغییر نام یک بخش از \fIoldname\fR به \fInewname\fR، همراه با امکان تغییر پرچم‌های بخش به \fIflags\fR در این فرایند به صورت اختیاری. این کار نسبت به استفاده از یک اسکریپت پیونددهنده برای تغییر نام این مزیت را دارد که خروجی به صورت یک فایل شیء باقی می‌ماند و تبدیل به یک فایل اجرایی پیوندیافته نمی‌شود. این گزینه همان مجموعه پرچم‌های گزینه \&\fB\-\-set\-section\-flags\fR را می‌پذیرد. .Sp این گزینه به‌ویژه زمانی سودمند است که قالب ورودی باینری باشد، چرا که این قالب همواره بخشی به نام .data ایجاد می‌کند. برای نمونه، اگر می‌خواستید به‌جای آن بخشی به نام .rodata حاوی داده‌های باینری ایجاد کنید، می‌توانید از خط فرمان زیر برای رسیدن به این هدف استفاده کنید: .Sp .Vb 3 \& objcopy \-I binary \-O \-B \e \& \-\-rename\-section .data=.rodata,alloc,load,readonly,data,contents \e \& .Ve .IP "\fB\-\-long\-section\-names {enable,disable,keep}\fR" 4 .IX Item "--long-section-names {enable,disable,keep}" مدیریت نام‌های طولانی بخش‌ها را هنگام پردازش قالب‌های شیء \f(CW\*(C`COFF\*(C'\fR و \f(CW\*(C`PE\-COFF\*(C'\fR کنترل می‌کند. رفتار پیش‌فرض، یعنی \fBkeep\fR، حفظ نام‌های طولانی بخش‌ها در صورت وجود در فایل ورودی است. گزینه‌های \fBenable\fR و \fBdisable\fR استفاده از نام‌های طولانی بخش‌ها را در شیء خروجی به صورت اجباری فعال یا غیرفعال می‌کنند؛ هنگامی که \fBdisable\fR اعمال شود، هر نام طولانی بخش در شیء ورودی کوتاه خواهد شد. گزینه \fBenable\fR تنها در صورتی نام‌های طولانی بخش را صادر می‌کند که در ورودی‌ها وجود داشته باشند؛ این رفتار تا حد زیادی مانند \fBkeep\fR است، اما این موضوع که آیا گزینه \fBenable\fR ممکن است ایجاد یک جدول رشته خالی را در فایل خروجی تحمیل کند یا خیر، تعریف‌نشده رها شده است. .IP \fB\-\-change\-leading\-char\fR 4 .IX Item "--change-leading-char" برخی از قالب‌های فایل شیء از نویسه‌های خاصی در آغاز نمادها استفاده می‌کنند. متداول‌ترین نویسه از این دست زیرخط است که کامپایلرها اغلب آن را پیش از هر نماد می‌افزایند. این گزینه به \fBobjcopy\fR می‌گوید که هنگام تبدیل میان قالب‌های فایل شیء، نویسه آغازین هر نماد را تغییر دهد. اگر هر دو قالب فایل شیء از نویسه آغازین یکسانی استفاده کنند، این گزینه هیچ اثری ندارد. در غیر این صورت، بر حسب نیاز یک نویسه اضافه می‌کند، یک نویسه را حذف می‌کند، یا یک نویسه را تغییر می‌دهد. .IP \fB\-\-remove\-leading\-char\fR 4 .IX Item "--remove-leading-char" اگر نخستین نویسه یک نماد سراسری، یک نویسه آغازین ویژه نماد باشد که توسط قالب فایل شیء استفاده می‌شود، آن نویسه را حذف می‌کند. متداول‌ترین نویسه آغازین نماد، زیرخط است. این گزینه زیرخط آغازین را از تمام نمادهای سراسری حذف خواهد کرد. این قابلیت زمانی مفید است که بخواهید اشیایی از قالب‌های فایلی گوناگون با قراردادهای مختلف برای نام نمادها را به یکدیگر پیوند دهید. این گزینه با \&\fB\-\-change\-leading\-char\fR متفاوت است، زیرا صرف‌نظر از قالب فایل شیءِ خروجی، در صورت لزوم همواره نام نماد را تغییر می‌دهد. .IP \fB\-\-reverse\-bytes=\fR\fInum\fR 4 .IX Item "--reverse-bytes=num" بایت‌ها را در بخشی با محتویات خروجی معکوس می‌کند. طول بخش باید بر مقدار داده‌شده بخش‌پذیر باشد تا امکان انجام جابه‌جایی وجود داشته باشد. معکوس‌سازی پیش از انجام درهم‌بافی (interleaving) صورت می‌پذیرد. .Sp این گزینه معمولاً در تولید ایمیج‌های ROM برای سیستم‌های مقصد مسئله‌دار استفاده می‌شود. برای نمونه، در برخی بردهای مقصد، کلمات ۳۲ بیتی واکشی‌شده از ROMهای ۸ بیتی، صرف‌نظر از ترتیب بایت پردازنده، با ترتیب بایت little\-endian بازآرایی می‌شوند. بسته به مدل برنامه‌نویسی، ممکن است نیاز باشد اندیاننس (endianness) حافظه ROM اصلاح شود. .Sp یک فایل ساده با بخشی شامل هشت بایت زیر را در نظر بگیرید: \f(CW12345678\fR. .Sp با استفاده از \fB\-\-reverse\-bytes=2\fR برای مثال بالا، بایت‌ها در فایل خروجی به صورت \f(CW21436587\fR مرتب خواهند شد. .Sp با استفاده از \fB\-\-reverse\-bytes=4\fR برای مثال بالا، بایت‌ها در فایل خروجی به صورت \f(CW43218765\fR مرتب خواهند شد. .Sp با استفاده از \fB\-\-reverse\-bytes=2\fR برای مثال بالا، و به دنبال آن اجرای \&\fB\-\-reverse\-bytes=4\fR روی فایل خروجی، بایت‌ها در فایل خروجی دوم به صورت \f(CW34127856\fR مرتب خواهند شد. .IP \fB\-\-srec\-len=\fR\fIival\fR 4 .IX Item "--srec-len=ival" تنها برای خروجی srec معنادار است. حداکثر طول رکوردهای S (یا Srecord) تولیدشده را روی \fIival\fR تنظیم می‌کند. این طول شامل فیلدهای نشانی، داده و crc می‌شود. .IP \fB\-\-srec\-forceS3\fR 4 .IX Item "--srec-forceS3" تنها برای خروجی srec معنادار است. از تولید رکوردهای S1/S2 جلوگیری کرده و تنها قالب رکورد S3 را ایجاد می‌کند. .IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4 .IX Item "--redefine-sym old=new" نام نماد \fIold\fR را به \fInew\fR تغییر می‌دهد. این قابلیت زمانی مفید است که بخواهید دو شیء را که کد منبع آن‌ها را ندارید به یکدیگر پیوند دهید و تداخل نام وجود داشته باشد. .IP \fB\-\-redefine\-syms=\fR\fIfilename\fR 4 .IX Item "--redefine-syms=filename" گزینه \fB\-\-redefine\-sym\fR را روی هر جفت‌نماد «\fIold\fR \fInew\fR» فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک جفت‌نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش آغاز شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-weaken\fR 4 .IX Item "--weaken" تمام نمادهای سراسری موجود در فایل را به نماد ضعیف (weak) تبدیل می‌کند. این ویژگی هنگام ساخت شیئی که قرار است با استفاده از گزینه \fB\-R\fR پیونددهنده با اشیاء دیگر پیوند داده شود، می‌تواند مفید باشد. این گزینه تنها زمانی کارآمد است که از قالب فایل شیئی استفاده شود که از نمادهای ضعیف پشتیبانی می‌کند. .IP \fB\-\-keep\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-symbols=filename" گزینه \fB\-\-keep\-symbol\fR را روی هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک نام نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش معرفی شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-strip\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-symbols=filename" گزینه \fB\-\-strip\-symbol\fR را روی هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک نام نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش معرفی شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR 4 .IX Item "--strip-unneeded-symbols=filename" گزینه \fB\-\-strip\-unneeded\-symbol\fR را روی هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک نام نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش معرفی شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-keep\-global\-symbols=\fR\fIfilename\fR 4 .IX Item "--keep-global-symbols=filename" گزینه \fB\-\-keep\-global\-symbol\fR را روی هر نماد فهرست‌شده در فایل \fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک نام نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش معرفی شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-localize\-symbols=\fR\fIfilename\fR 4 .IX Item "--localize-symbols=filename" گزینه \fB\-\-localize\-symbol\fR را روی هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک نام نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش معرفی شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-globalize\-symbols=\fR\fIfilename\fR 4 .IX Item "--globalize-symbols=filename" گزینه \fB\-\-globalize\-symbol\fR را روی هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک نام نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش معرفی شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. نکته: این گزینه نمی‌تواند در ترکیب با گزینه‌های \fB\-G\fR یا \fB\-\-keep\-global\-symbol\fR استفاده شود. .IP \fB\-\-weaken\-symbols=\fR\fIfilename\fR 4 .IX Item "--weaken-symbols=filename" گزینه \fB\-\-weaken\-symbol\fR را روی هر نماد فهرست‌شده در فایل \&\fIfilename\fR اعمال می‌کند. \fIfilename\fR صرفاً یک فایل متنی ساده است که در هر سطر آن یک نام نماد قرار دارد. توضیحات درون سطرها می‌توانند با نویسه هش معرفی شوند. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-\-alt\-machine\-code=\fR\fIindex\fR 4 .IX Item "--alt-machine-code=index" اگر معماری خروجی دارای کدهای ماشین جایگزین باشد، به‌جای کد پیش‌فرض از کد شماره \&\fIindex\fRام استفاده می‌کند. این ویژگی زمانی مفید است که برای یک ماشین یک کد رسمی اختصاص یابد و زنجیره‌ابزار کد جدید را به کار گیرد، اما برنامه‌های دیگر همچنان به استفاده از کد اصلی وابسته باشند. برای معماری‌های مبتنی بر ELF، اگر جایگزین شماره \fIindex\fR وجود نداشته باشد، مقدار به عنوان یک عدد مطلق در نظر گرفته می‌شود تا در فیلد e_machine سرآیند ELF ذخیره گردد. .IP \fB\-\-writable\-text\fR 4 .IX Item "--writable-text" بخش متن (text) خروجی را به عنوان قابل نوشتن نشانه‌گذاری می‌کند. این گزینه برای همه قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-readonly\-text\fR 4 .IX Item "--readonly-text" بخش متن (text) خروجی را در برابر نوشتن محافظت می‌کند. این گزینه برای همه قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-pure\fR 4 .IX Item "--pure" فایل خروجی را به عنوان صفحه‌بندی بر حسب تقاضا (demand paged) نشانه‌گذاری می‌کند. این گزینه برای همه قالب‌های فایل شیء معنادار نیست. .IP \fB\-\-impure\fR 4 .IX Item "--impure" فایل خروجی را به عنوان ناخالص (impure) نشانه‌گذاری می‌کند. این گزینه برای همه قالب‌های فایل شیء معنادار نیست..IP \fB\-\-prefix\-symbols=\fR\fIstring\fR 4 .IX Item "--prefix-symbols=string" افزودن پیشوند \fIstring\fR به تمام نمادها در فایل خروجی. .IP \fB\-\-prefix\-sections=\fR\fIstring\fR 4 .IX Item "--prefix-sections=string" افزودن پیشوند \fIstring\fR به نام تمام بخش‌ها در فایل خروجی. .IP \fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR 4 .IX Item "--prefix-alloc-sections=string" افزودن پیشوند \&\fIstring\fR به نام تمام بخش‌های تخصیص‌یافته در فایل خروجی. .IP \fB\-\-add\-gnu\-debuglink=\fR\fIpath\-to\-file\fR 4 .IX Item "--add-gnu-debuglink=path-to-file" بخشی به نام .gnu_debuglink ایجاد می‌کند که حاوی ارجاعی به \&\fIpath\-to\-file\fR است و آن را به فایل خروجی اضافه می‌کند. نکته: فایل موجود در \&\fIpath\-to\-file\fR باید وجود داشته باشد. بخشی از فرایند افزودن بخش \&.gnu_debuglink شامل گنجاندن یک چکسام از محتویات فایل اطلاعات اشکال‌زدایی در این بخش است. .Sp اگر فایل اطلاعات اشکال‌زدایی در یک مکان ساخته شده اما قرار است بعداً در مکان متفاوتی نصب شود، از مسیر مکان نصب‌شده استفاده نکنید. گزینه \fB\-\-add\-gnu\-debuglink\fR ناموفق خواهد بود زیرا فایل نصب‌شده هنوز وجود ندارد. در عوض فایل اطلاعات اشکال‌زدایی را در دایرکتوری جاری قرار داده و از گزینه \&\fB\-\-add\-gnu\-debuglink\fR بدون مشخص کردن هیچ دایرکتوری استفاده کنید، مانند این: .Sp .Vb 1 \& objcopy \-\-add\-gnu\-debuglink=foo.debug .Ve .Sp هنگام اشکال‌زدایی، اشکال‌زدا تلاش می‌کند تا فایل جداگانه اطلاعات اشکال‌زدایی را در مجموعه‌ای از مکان‌های شناخته‌شده جستجو کند. مجموعه دقیق این مکان‌ها بسته به توزیع مورد استفاده متفاوت است، اما معمولاً شامل موارد زیر است: .RS 4 .IP \(bu 4 همان دایرکتوری حاوی فایل اجرایی. .IP \(bu 4 یک زیردایرکتوری از دایرکتوری حاوی فایل اجرایی با نام \&.debug. .IP \(bu 4 یک دایرکتوری سراسری اشکال‌زدایی مانند /usr/lib/debug. .RE .RS 4 .Sp تا زمانی که فایل اطلاعات اشکال‌زدایی پیش از اجرای اشکال‌زدا در یکی از این مکان‌ها نصب شده باشد، همه‌چیز باید به درستی کار کند. .RE .IP \fB\-\-keep\-section\-symbols\fR 4 .IX Item "--keep-section-symbols" هنگام پیراستن یک فایل، احتمالاً با \fB\-\-strip\-debug\fR یا \&\fB\-\-strip\-unneeded\fR، تمام نمادهایی که نام بخش‌ها را مشخص می‌کنند و در غیر این صورت حذف می‌شدند را حفظ می‌کند. .IP \fB\-\-keep\-file\-symbols\fR 4 .IX Item "--keep-file-symbols" هنگام پیراستن یک فایل، احتمالاً با \fB\-\-strip\-debug\fR یا \&\fB\-\-strip\-unneeded\fR، تمام نمادهایی که نام فایل‌های منبع را مشخص می‌کنند و در غیر این صورت حذف می‌شدند را حفظ می‌کند. .IP \fB\-\-only\-keep\-debug\fR 4 .IX Item "--only-keep-debug" پیراستن فایل، با حذف محتوای تمام بخش‌هایی که توسط \fB\-\-strip\-debug\fR پیراسته نمی‌شوند و دست‌نخورده باقی گذاشتن بخش‌های اشکال‌زدایی. در فایل‌های ELF، این کار تمام بخش‌های note را در خروجی حفظ می‌کند. .Sp نکته \- سرایندهای بخش مربوط به بخش‌های پیراسته‌شده، شامل اندازه آن‌ها، حفظ می‌شوند، اما محتوای بخش دور ریخته می‌شود. سرایندهای بخش به این دلیل حفظ می‌شوند تا ابزارهای دیگر بتوانند فایل debuginfo را با فایل اجرایی واقعی تطبیق دهند، حتی اگر آن فایل اجرایی به فضای آدرس متفاوتی بازنشانی شده باشد. .Sp هدف این است که این گزینه در کنار \&\fB\-\-add\-gnu\-debuglink\fR برای ایجاد یک فایل اجرایی دو بخشی استفاده شود: یکی باینری پیراسته‌شده که فضای کمتری را در RAM و توزیع اشغال می‌کند و دومی فایل اطلاعات اشکال‌زدایی که تنها در صورت نیاز به قابلیت‌های اشکال‌زدایی لازم است. روال پیشنهادی برای ایجاد این فایل‌ها به شرح زیر است: .RS 4 .IP 1. 4 فایل اجرایی را به صورت عادی پیوند دهید. با فرض اینکه نام آن \f(CW\*(C`foo\*(C'\fR باشد، سپس... .IP 2. 4 دستور \f(CW\*(C`objcopy \-\-only\-keep\-debug foo foo.dbg\*(C'\fR را برای ایجاد فایلی حاوی اطلاعات اشکال‌زدایی اجرا کنید. .IP 3. 4 دستور \f(CW\*(C`objcopy \-\-strip\-debug foo\*(C'\fR را برای ایجاد یک فایل اجرایی پیراسته‌شده اجرا کنید. .IP 4. 4 دستور \f(CW\*(C`objcopy \-\-add\-gnu\-debuglink=foo.dbg foo\*(C'\fR را برای افزودن پیوندی به اطلاعات اشکال‌زدایی در فایل اجرایی پیراسته‌شده اجرا کنید. .RE .RS 4 .Sp نکته\-\-\-انتخاب \f(CW\*(C`.dbg\*(C'\fR به عنوان پسوند فایل اطلاعات اشکال‌زدایی اختیاری است. همچنین مرحله \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR اختیاری است. به جای آن می‌توانید این کار را انجام دهید: .IP 1. 4 فایل اجرایی را به صورت عادی پیوند دهید. .IP 2. 4 از \f(CW\*(C`foo\*(C'\fR در \f(CW\*(C`foo.full\*(C'\fR رونوشت بگیرید. .IP 3. 4 دستور \f(CW\*(C`objcopy \-\-strip\-debug foo\*(C'\fR را اجرا کنید. .IP 4. 4 دستور \f(CW\*(C`objcopy \-\-add\-gnu\-debuglink=foo.full foo\*(C'\fR را اجرا کنید. .RE .RS 4 .Sp یعنی فایلی که توسط \fB\-\-add\-gnu\-debuglink\fR به آن اشاره می‌شود می‌تواند همان فایل اجرایی کامل باشد. لزومی ندارد فایلی باشد که توسط گزینه \&\fB\-\-only\-keep\-debug\fR ایجاد شده است. .Sp نکته\-\-\-این گزینه تنها برای استفاده روی فایل‌های کاملاً پیوندخورده در نظر گرفته شده است. استفاده از آن روی فایل‌های شیء که ممکن است اطلاعات اشکال‌زدایی در آن‌ها ناقص باشد بی‌معنی است. علاوه بر این، قابلیت gnu_debuglink در حال حاضر تنها از وجود یک نام فایل حاوی اطلاعات اشکال‌زدایی پشتیبانی می‌کند، نه چند نام فایل به ازای هر فایل شیء. .RE .IP \fB\-\-strip\-dwo\fR 4 .IX Item "--strip-dwo" حذف محتویات تمام بخش‌های DWARF .dwo، در حالی که باقی بخش‌های اشکال‌زدایی و تمام نمادها دست‌نخورده باقی می‌مانند. این گزینه برای استفاده توسط کامپایلر به عنوان بخشی از گزینه \fB\-gsplit\-dwarf\fR در نظر گرفته شده است، که اطلاعات اشکال‌زدایی را بین فایل .o و یک فایل جداگانه .dwo تقسیم می‌کند. کامپایلر تمام اطلاعات اشکال‌زدایی را در همان فایل تولید می‌کند، سپس از گزینه \fB\-\-extract\-dwo\fR برای کپی کردن بخش‌های .dwo به فایل .dwo استفاده کرده، و سپس از گزینه \fB\-\-strip\-dwo\fR برای حذف آن بخش‌ها از فایل اصلی .o بهره می‌گیرد. .IP \fB\-\-extract\-dwo\fR 4 .IX Item "--extract-dwo" استخراج محتویات تمام بخش‌های DWARF .dwo. برای اطلاعات بیشتر گزینه \&\fB\-\-strip\-dwo\fR را ببینید. .IP "\fB\-\-file\-alignment\fR \fInum\fR" 4 .IX Item "--file-alignment num" تعیین هم‌ترازی فایل. بخش‌های موجود در فایل همواره در آفست‌هایی از فایل آغاز می‌شوند که مضربی از این عدد باشند. پیش‌فرض این مقدار ۵۱۲ است. [این گزینه مختص به هدف‌های PE است.] .IP "\fB\-\-heap\fR \fIreserve\fR" 4 .IX Item "--heap reserve" .PD 0 .IP "\fB\-\-heap\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4 .IX Item "--heap reserve,commit" .PD تعیین تعداد بایت‌های حافظه برای رزرو (و در صورت تمایل commit کردن) جهت استفاده به عنوان هیپ برای این برنامه. [این گزینه مختص به هدف‌های PE است.] .IP "\fB\-\-image\-base\fR \fIvalue\fR" 4 .IX Item "--image-base value" استفاده از \fIvalue\fR به عنوان آدرس پایه برنامه یا dll شما. این پایین‌ترین مکان حافظه است که هنگام بارگذاری برنامه یا dll شما استفاده خواهد شد. برای کاهش نیاز به بازنشانی و بهبود عملکرد dllهای شما، هر کدام باید یک آدرس پایه یکتا داشته باشند و با هیچ dll دیگری همپوشانی نداشته باشند. مقدار پیش‌فرض 0x400000 برای فایل‌های اجرایی و 0x10000000 برای dllها است. [این گزینه مختص به هدف‌های PE است.] .IP "\fB\-\-section\-alignment\fR \fInum\fR" 4 .IX Item "--section-alignment num" [این گزینه مختص به هدف‌های PE است.] .Sp تنظیم فیلد هم‌ترازی بخش در سرایند PE \- در صورتی که در باینری موجود باشد. بخش‌ها در حافظه همواره از آدرس‌هایی آغاز می‌شوند که مضربی از این عدد باشند. پیش‌فرض 0x1000 است. .Sp نکته \- اگر آدرس‌های LMA یا VMA یک بخش دیگر هم‌تراز نباشند، و این آدرس‌ها از طریق گزینه‌های \fB\-\-set\-section\-lma\fR یا \&\fB\-\-set\-section\-vma\fR تنظیم نشده باشند، و فایل به طور کامل بازنشانی شده باشد، یک پیام هشدار صادر خواهد شد. آنگاه تصمیم‌گیری درباره اینکه آیا LMA و VMA نیاز به به‌روزرسانی دارند یا خیر بر عهده کاربر خواهد بود. .IP "\fB\-\-stack\fR \fIreserve\fR" 4 .IX Item "--stack reserve" .PD 0 .IP "\fB\-\-stack\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4 .IX Item "--stack reserve,commit" .PD تعیین تعداد بایت‌های حافظه برای رزرو (و در صورت تمایل commit کردن) جهت استفاده به عنوان پشته برای این برنامه. [این گزینه مختص به هدف‌های PE است.] .IP "\fB\-\-subsystem\fR \fIwhich\fR" 4 .IX Item "--subsystem which".PD 0 .IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR" 4 .IX Item "--subsystem which:major" .IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR\fB.\fR\fIminor\fR" 4 .IX Item "--subsystem which:major.minor" .PD زیرسیستمی را مشخص می‌کند که برنامهٔ شما تحت آن اجرا خواهد شد. مقادیر مجاز برای \fIwhich\fR عبارتند از \f(CW\*(C`native\*(C'\fR، \f(CW\*(C`windows\*(C'\fR، \&\f(CW\*(C`console\*(C'\fR، \f(CW\*(C`posix\*(C'\fR، \f(CW\*(C`efi\-app\*(C'\fR، \f(CW\*(C`efi\-bsd\*(C'\fR، \&\f(CW\*(C`efi\-rtd\*(C'\fR، \f(CW\*(C`sal\-rtd\*(C'\fR و \f(CW\*(C`xbox\*(C'\fR. همچنین می‌توانید به‌صورت اختیاری نسخهٔ زیرسیستم را نیز تنظیم کنید. مقادیر عددی نیز برای \&\fIwhich\fR پذیرفته می‌شوند. [این گزینه مخصوص هدف‌های PE است.] .IP \fB\-\-extract\-symbol\fR 4 .IX Item "--extract-symbol" پرچم‌های بخش‌ها و نمادهای فایل را نگه می‌دارد اما تمام داده‌های بخش‌ها را حذف می‌کند. به طور مشخص، این گزینه: .RS 4 .IP \(bu 4 محتوای تمامی بخش‌ها را حذف می‌کند. .IP \(bu 4 اندازهٔ هر بخش را به صفر تنظیم می‌کند. .IP \(bu 4 نشانی آغازین فایل را به صفر تنظیم می‌کند. .RE .RS 4 .Sp این گزینه برای ساخت یک فایل \fI.sym\fR جهت کرنل VxWorks استفاده می‌شود. همچنین می‌تواند روش مفیدی برای کاهش اندازهٔ یک فایل ورودی پیونددهندهٔ \fB\-\-just\-symbols\fR باشد. .RE .IP \fB\-\-compress\-debug\-sections\fR 4 .IX Item "--compress-debug-sections" بخش‌های اشکال‌زدایی DWARF را با استفاده از zlib به همراه SHF_COMPRESSED از ELF ABI فشرده می‌کند. توجه \- اگر فشرده‌سازی در واقع باعث \fIبزرگ‌تر\fR شدن یک بخش شود، آن بخش فشرده نخواهد شد. .IP \fB\-\-compress\-debug\-sections=none\fR 4 .IX Item "--compress-debug-sections=none" .PD 0 .IP \fB\-\-compress\-debug\-sections=zlib\fR 4 .IX Item "--compress-debug-sections=zlib" .IP \fB\-\-compress\-debug\-sections=zlib\-gnu\fR 4 .IX Item "--compress-debug-sections=zlib-gnu" .IP \fB\-\-compress\-debug\-sections=zlib\-gabi\fR 4 .IX Item "--compress-debug-sections=zlib-gabi" .IP \fB\-\-compress\-debug\-sections=zstd\fR 4 .IX Item "--compress-debug-sections=zstd" .PD برای فایل‌های ELF، این گزینه‌ها نحوهٔ فشرده‌سازی بخش‌های اشکال‌زدایی DWARF را کنترل می‌کنند. گزینهٔ \fB\-\-compress\-debug\-sections=none\fR معادل \fB\-\-decompress\-debug\-sections\fR است. گزینه‌های \&\fB\-\-compress\-debug\-sections=zlib\fR و \&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR معادل \&\fB\-\-compress\-debug\-sections\fR هستند. گزینهٔ \&\fB\-\-compress\-debug\-sections=zlib\-gnu\fR بخش‌های اشکال‌زدایی DWARF را با استفاده از قالب منسوخ‌شدهٔ zlib\-gnu فشرده می‌کند. نام بخش‌های اشکال‌زدایی به‌گونه‌ای تغییر می‌کند که با \fB.zdebug\fR آغاز شوند. گزینهٔ \&\fB\-\-compress\-debug\-sections=zstd\fR بخش‌های اشکال‌زدایی DWARF را با استفاده از zstd فشرده می‌کند. توجه \- اگر فشرده‌سازی در واقع باعث \fIبزرگ‌تر\fR شدن یک بخش شود، نه فشرده می‌شود و نه نام آن تغییر می‌یابد. .IP \fB\-\-decompress\-debug\-sections\fR 4 .IX Item "--decompress-debug-sections" بخش‌های اشکال‌زدایی DWARF را از حالت فشرده خارج می‌کند. برای یک بخش \fB.zdebug\fR، نام اصلی بازیابی می‌شود. .IP \fB\-\-elf\-stt\-common=yes\fR 4 .IX Item "--elf-stt-common=yes" .PD 0 .IP \fB\-\-elf\-stt\-common=no\fR 4 .IX Item "--elf-stt-common=no" .PD برای فایل‌های ELF، این گزینه‌ها کنترل می‌کنند که آیا نمادهای عمومی (common symbols) باید به نوع \f(CW\*(C`STT_COMMON\*(C'\fR تبدیل شوند یا به \f(CW\*(C`STT_OBJECT\*(C'\fR. گزینهٔ \&\fB\-\-elf\-stt\-common=yes\fR نوع نماد عمومی را به \&\f(CW\*(C`STT_COMMON\*(C'\fR تبدیل می‌کند. گزینهٔ \fB\-\-elf\-stt\-common=no\fR نوع نماد عمومی را به \f(CW\*(C`STT_OBJECT\*(C'\fR تبدیل می‌کند. .IP \fB\-\-merge\-notes\fR 4 .IX Item "--merge-notes" .PD 0 .IP \fB\-\-no\-merge\-notes\fR 4 .IX Item "--no-merge-notes" .PD برای فایل‌های ELF، تلاش می‌کند (یا تلاش نمی‌کند) تا با حذف یادداشت‌های تکراری، اندازهٔ هر بخش از نوع SHT_NOTE را کاهش دهد. .IP \fB\-V\fR 4 .IX Item "-V" .PD 0 .IP \fB\-\-version\fR 4 .IX Item "--version" .PD نمایش شماره نسخهٔ \fBobjcopy\fR. .IP \fB\-\-verilog\-data\-width=\fR\fIbytes\fR 4 .IX Item "--verilog-data-width=bytes" برای خروجی Verilog، این گزینه تعداد بایت‌های تبدیل‌شده را برای هر عنصر دادهٔ خروجی کنترل می‌کند. هدف ورودی، ترتیب بایت (endianness) تبدیل را کنترل می‌کند. .IP \fB\-v\fR 4 .IX Item "-v" .PD 0 .IP \fB\-\-verbose\fR 4 .IX Item "--verbose" .PD خروجی پرحرّافی: فهرستی از تمام فایل‌های شیءِ تغییریافته را نشان می‌دهد. در مورد آرشیوها، \fBobjcopy \-V\fR تمام اعضای آرشیو را فهرست می‌کند. .IP \fB\-\-help\fR 4 .IX Item "--help" نمایش خلاصه‌ای از گزینه‌های \fBobjcopy\fR. .IP \fB\-\-info\fR 4 .IX Item "--info" نمایش فهرستی از تمام معماری‌ها و قالب‌های شیء موجود. .IP \fB@\fR\fIfile\fR 4 .IX Item "@file" خواندن گزینه‌های خط فرمان از \fIfile\fR. گزینه‌های خوانده‌شده به جای گزینهٔ اصلی @\fIfile\fR قرار داده می‌شوند. اگر \fIfile\fR وجود نداشته باشد یا نتوان آن را خواند، با گزینه به‌صورت لفظی رفتار شده و حذف نخواهد شد. .Sp گزینه‌ها در \fIfile\fR با نویسهٔ فاصله جدا می‌شوند. یک نویسهٔ فاصله می‌تواند با قرار دادن کل گزینه درون نقل‌قول تکی یا دوتایی در آن گنجانده شود. هر نویسه‌ای (از جمله ممیز وارونه) را می‌توان با افزودن پیشوند ممیز وارونه به نویسه مورد نظر، درج کرد. خود \fIfile\fR می‌تواند شامل گزینه‌های اضافی @\fIfile\fR دیگری باشد؛ چنین گزینه‌هایی به‌صورت بازگشتی پردازش خواهند شد..SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBld\fR\|(1)، \fBobjdump\fR\|(1) و مدخل‌های Info برای \fIbinutils\fR. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (c) 1991\-2026 Free Software Foundation, Inc. .PP اجازهٔ کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخهٔ 1.3 یا هر نسخهٔ متأخر دیگری که توسط Free Software Foundation منتشر شده باشد، اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر (Invariant Sections)، بدون متون روی جلد (Front\-Cover Texts) و بدون متون پشت جلد (Back\-Cover Texts). نسخه‌ای از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.