.\" -*- 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-01-23 binutils-2.45.1 "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\-\-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" ابزار \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 (S\-records) با استفاده از یک هدف خروجیِ \fBsrec\fR استفاده کرد (برای مثال، با استفاده از \fB\-O srec\fR). .PP می‌توان از \&\fBobjcopy\fR برای تولید یک فایل باینری خام با استفاده از یک هدف خروجیِ \fBbinary\fR استفاده کرد (برای مثال، با استفاده از \fB\-O binary\fR). هنگامی که \&\fBobjcopy\fR یک فایل باینری خام تولید می‌کند، اساساً یک رونوشت حافظه (memory dump) از محتویات فایل شیء ورودی ایجاد خواهد کرد. تمامی نمادها و اطلاعات بازنشانی دور ریخته خواهند شد. رونوشت حافظه از آدرس بارگذاریِ پایین‌ترین بخشی که در فایل خروجی کپی شده است، آغاز می‌شود. .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 تنظیم کرد. در صورتی که فایل ورودی دارای یک \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" سرآیندهای بخش (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 اطلاعات بازنشانی و نمادها را از فایل مبدأ کپی نمی‌کند. همچنین بخش‌های اشکال‌زدایی (debug) را حذف می‌کند..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 را از فایل مبدأ کپی نمی‌کند، مگر اینکه برای یک بازآرایی (relocation) مورد نیاز باشد. این گزینه می‌تواند بیش از یک بار مشخص شود. .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 را سراسری (global) نگه می‌دارد. سایر نمادها را برای فایل محلی (local) می‌کند، به طوری که از خارج قابل مشاهده نباشند. این گزینه می‌تواند بیش از یک بار مشخص شود. نکته: این گزینه نمی‌تواند همراه با گزینه‌های \fB\-\-globalize\-symbol\fR یا \&\fB\-\-globalize\-symbols\fR استفاده شود. .IP \fB\-\-localize\-hidden\fR 4 .IX Item "--localize-hidden" در یک شیء ELF، تمام نمادهایی را که دید (visibility) پنهان یا داخلی دارند به عنوان محلی علامت‌گذاری می‌کند. این گزینه علاوه‌بر گزینه‌های محلی‌سازی مختص هر نماد مانند \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 یک نماد سراسری یا ضعیف (weak) به نام \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\-\-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 استفاده از عبارت‌های باقاعده (regular expressions) را در \fIsymbolname\fRهای به‌کار رفته در سایر گزینه‌های خط فرمان مجاز می‌کند. عملگرهای علامت سؤال (?)، ستاره (*)، ممیز وارونه (\e) و قلاب‌ها ([]) می‌توانند در هر کجای نام نماد به کار روند. اگر نخستین نویسهٔ نام نماد علامت تعجب (!) باشد، عملکرد گزینه برای آن نماد معکوس می‌شود. برای نمونه: .Sp .Vb 1 \& \-w \-W !foo \-W fo* .Ve .Sp باعث می‌شود \fBobjcopy\fR تمام نمادهایی را که با "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 اگر درهم‌بافی از طریق گزینهٔ \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 استفاده می‌شود. توجه داشته باشید که اگر گزینهٔ \&\fB\-\-byte\fR را نیز مشخص نکنید، \&\fBobjcopy\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 این گزینه می‌تواند برای ایجاد ایمیج‌ها برای دو حافظهٔ فلش 16 بیتی درهم‌بافته‌شده در یک گذرگاه 32 بیتی، با ارسال \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 در حالت \fIقطعیت‌گرا (deterministic)\fR عمل می‌کند. هنگام کپی کردن اعضای آرشیو و نوشتن نمایهٔ آرشیو، برای UIDها، GIDها و برچسب‌های زمانی از صفر استفاده می‌کند و برای همهٔ فایل‌ها حالت‌های فایلی یکسان به کار می‌برد. .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، مهرزمانی (timestamp) و حالت‌های فایل مربوط به آن‌ها استفاده کنید. .Sp این حالت پیش‌فرض است مگر اینکه \fIbinutils\fR با گزینهٔ \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد. .IP \fB\-\-debugging\fR 4 .IX Item "--debugging" در صورت امکان، اطلاعات اشکال‌زدایی (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 binary) می‌تواند خطرناک باشد زیرا ممکن است کدهایی وجود داشته باشند که انتظار دارند بخش‌ها در نشانی قدیمی‌شان قرار گیرند. .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 است، با این تفاوت که فایل قالب‌بندی‌شده‌ای ایجاد نمی‌کند، بلکه تنها محتویات را به‌صورت داده‌های باینری خام بدون اِعمال هیچ‌گونه بازآرایی (relocations) استخراج و ذخیره (dump) می‌کند. این گزینه را می‌توان بیش از یک بار مشخص کرد. .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 (مطلق) خواهد بود. مشخص کردن یک بخش تعریف‌نشده منجر به خطای مرگبار خواهد شد. هیچ بررسی روی مقدار انجام نمی‌شود و همان‌طور که مشخص شده دریافت خواهد شد. پرچم‌های نماد را می‌توان مشخص کرد اما همهٔ پرچم‌ها برای تمام قالب‌های فایل شیء معنادار نخواهند بود. به‌طور پیش‌فرض، نماد سراسری (global) خواهد بود. پرچم ویژهٔ \&\*(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 در حین این فرایند. این گزینه نسبت به استفاده از اسکریپت پیونددهنده برای تغییر نام، این مزیت را دارد که خروجی همچنان به‌صورت یک فایل شیء (object file) باقی می‌ماند و به یک فایل اجرایی پیوندیافته تبدیل نمی‌شود. این گزینه همان مجموعه پرچم‌های گزینهٔ \&\fB\-\-set\-section\-flags\fR را می‌پذیرد. .Sp این گزینه به‌ویژه زمانی مفید است که قالب ورودی دودویی (binary) باشد، زیرا در این حالت همیشه بخشی به نام .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" برخی از قالب‌های فایل شیء از نویسه‌های خاصی در ابتدای نمادها استفاده می‌کنند. متداول‌ترین این نویسه‌ها زیرخط (underscore) است که کامپایلرها معمولاً قبل از هر نماد اضافه می‌کنند. این گزینه به \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 (یا Srecords) تولیدی را روی \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" بخش متن خروجی را محافظت‌شده در برابر نوشتن (فقط‌خواندنی) می‌کند. این گزینه برای تمام قالب‌های فایل شیء معنادار نیست. .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 شامل گنجاندن یک چکسام (checksum) از محتویات فایل اطلاعات خطایابی درون این بخش است. .Sp اگر فایل اطلاعات خطایابی در یک مکان ساخته شده است اما قرار است بعداً در مکان متفاوتی نصب شود، از مسیر مکان نصب استفاده نکنید. گزینهٔ \&\fB\-\-add\-gnu\-debuglink\fR با شکست مواجه خواهد شد زیرا فایل نصب‌شده هنوز وجود ندارد. در عوض فایل اطلاعات خطایابی را در دایرکتوری جاری قرار دهید و از گزینهٔ \fB\-\-add\-gnu\-debuglink\fR بدون هیچ جزء دایرکتوری استفاده کنید، مانند این: .Sp .Vb 1 \& objcopy \-\-add\-gnu\-debuglink=foo.debug .Ve .Sp در زمان خطایابی، خطایاب تلاش می‌کند تا فایل جداگانهٔ اطلاعات خطایابی را در مجموعه‌ای از مکان‌های شناخته‌شده جستجو کند. مجموعهٔ دقیق این مکان‌ها بسته به توزیعِ مورداستفاده متفاوت است، اما معمولاً شامل موارد زیر است: .RS 4 .ie n .IP """* The same directory as the executable.""" 4 .el .IP "\f(CW* The same directory as the executable.\fR" 4 .IX Item "* The same directory as the executable." .PD 0 .ie n .IP """* A sub\-directory of the directory containing the executable""" 4 .el .IP "\f(CW* A sub\-directory of the directory containing the executable\fR" 4 .IX Item "* A sub-directory of the directory containing the executable" .PD به نام .debug .ie n .IP """* A global debug directory such as /usr/lib/debug.""" 4 .el .IP "\f(CW* A global debug directory such as /usr/lib/debug.\fR" 4 .IX Item "* A global debug directory such as /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، تمام نمادهایی که نام بخش‌ها را مشخص می‌کنند نگه می‌دارد؛ نمادهایی که در غیر این صورت حذف (strip) می‌شدند. .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 را با فایل اجرایی واقعی تطبیق دهند، حتی اگر آن فایل اجرایی به فضای نشانی متفاوتی بازآدرس‌دهی (relocate) شده باشد. .Sp هدف این است که از این گزینه به همراه \fB\-\-add\-gnu\-debuglink\fR برای ایجاد یک فایل اجرایی دو بخشی استفاده شود. یکی باینریِ پیراسته‌شده (stripped) که فضای کمتری در RAM و در توزیع اشغال می‌کند، و دومی فایل اطلاعات خطایابی که تنها در صورت نیاز به قابلیت‌های خطایابی لازم است. روال پیشنهادی برای ایجاد این فایل‌ها به شرح زیر است: .RS 4 .IP "1." 4 .IX Item "1." \&\f(CW\*(C`foo\*(C'\fR باشد، سپس... .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." ایجاد فایلی حاوی اطلاعات خطایابی. .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." فایل اجرایی پیراسته‌شده. .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." جهت افزودن پیوندی به اطلاعات خطایابی درون فایل اجرایی پیراسته‌شده. .RE .RS 4 .Sp توجه\-\-\-انتخاب \f(CW\*(C`.dbg\*(C'\fR به عنوان پسوند برای فایل اطلاعات خطایابی اختیاری است. همچنین مرحلهٔ \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR اختیاری است. می‌توانید در عوض این کار را انجام دهید: .IP "1." 4 .IX Item "1." .PD 0 .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." .PD .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" محتوای تمام بخش‌های .dwo مربوط به DWARF را حذف می‌کند، و باقی بخش‌های خطایابی و تمام نمادها را دست‌نخورده باقی می‌گذارد. این گزینه برای استفاده توسط کامپایلر به عنوان بخشی از گزینهٔ \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" محتوای تمام بخش‌های .dwo مربوط به DWARF را استخراج می‌کند. برای اطلاعات بیشتر گزینهٔ \fB\-\-strip\-dwo\fR را ببینید. .IP "\fB\-\-file\-alignment\fR \fInum\fR" 4 .IX Item "--file-alignment num" هم‌ترازی فایل را مشخص می‌کند. بخش‌های درون فایل همیشه از آفست‌هایی از فایل آغاز می‌شوند که مضربی از این عدد باشند. مقدار پیش‌فرض آن 512 است. [این گزینه مخصوص هدف‌های 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 تعداد بایت‌های حافظه را برای رزرو (و در صورت تمایل تثبیت) جهت استفاده به عنوان هیپ برای این برنامه مشخص می‌کند. [این گزینه مخصوص هدف‌های PE است.] .IP "\fB\-\-image\-base\fR \fIvalue\fR" 4 .IX Item "--image-base value" از \fIvalue\fR به عنوان نشانی پایه برای برنامه یا dll شما استفاده می‌کند. این پایین‌ترین مکان حافظه است که هنگام بارگذاری برنامه یا dll شما استفاده خواهد شد. برای کاهش نیاز به بازآدرس‌دهی و بهبود عملکرد dllهای شما، هر کدام باید نشانی پایهٔ یکتایی داشته باشند و با هیچ dll دیگری هم‌پوشانی نداشته باشند. مقدار پیش‌فرض برای فایل‌های اجرایی 0x400000، و برای dllها 0x10000000 است. [این گزینه مخصوص هدف‌های PE است.] .IP "\fB\-\-section\-alignment\fR \fInum\fR" 4 .IX Item "--section-alignment num" [این گزینه مخصوص هدف‌های PE است.] .Sp فیلد هم‌ترازی بخش (section alignment) را در سرایند 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 تعداد بایت‌های حافظه را برای رزرو (و در صورت تمایل تثبیت) جهت استفاده به عنوان پشته برای این برنامه مشخص می‌کند. [این گزینه مخصوص هدف‌های 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 "*<محتوای تمامی بخش‌ها را حذف می‌کند؛>" 4 .IX Item "*" .PD 0 .IP "*<اندازه هر بخش را صفر می‌کند؛ و>" 4 .IX Item "*" .IP "*<آدرس آغازین فایل را روی صفر تنظیم می‌کند.>" 4 .IX Item "*" .PD .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، این گزینه‌ها کنترل می‌کنند که آیا نمادهای عمومی باید به نوع \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 با نویسه فاصله (whitespace) از یکدیگر جدا می‌شوند. یک نویسه فاصله می‌تواند با احاطه کردن کل گزینه درون علامت نقل‌قول تکی یا جفتی، در گزینه گنجانده شود. هر نویسه‌ای (از جمله بک‌اسلش) می‌تواند با پیشوند کردن یک بک‌اسلش پیش از نویسه مورد نظر، درج شود. خود \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\-2025 Free Software Foundation, Inc. .PP اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخهٔ 1.3 یا هر نسخهٔ متأخر دیگری که توسط بنیاد نرم‌افزار آزاد (Free Software Foundation) منتشر شده باشد اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد. نسخه‌ای از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.