| LM32-ELF-AR(1) | GNU Development Tools | LM32-ELF-AR(1) |
نام (NAME)
lm32-elf-ar - ایجاد، تغییر و استخراج از آرشیوهای باینری معماری LatticeMico32
خلاصه دستور (SYNOPSIS)
lm32-elf-ar [-X32_64] [-]p[mod] [--plugin name] [--target bfdname] [--output dirname] [--record-libdeps libdeps] [--thin] [relpos] [count] archive [member...]
توضیحات (DESCRIPTION)
برنامه ar گنو اقدام به ساخت، اصلاح و استخراج فایلها از آرشیوها میکند. یک آرشیو فایلی منفرد است که مجموعهای از فایلهای دیگر را در ساختاری نگهداری میکند تا بتوان فایلهای اصلی مجزا (که اعضا یا members آرشیو نامیده میشوند) را دوباره بازیابی کرد.
محتوای فایلهای اصلی، حالت (دسترسیها و مجوزها)، برچسب زمانی، مالک و گروه در آرشیو حفظ میشوند و هنگام استخراج قابل بازیابی هستند.
برنامه ar گنو میتواند آرشیوهایی را نگهداری کند که اعضای آن نامهایی با هر طولی داشته باشند؛ با این حال، بسته به نحوه پیکربندی ar روی سیستم شما، ممکن است برای سازگاری با فرمتهای آرشیو نگهداریشده توسط سایر ابزارها، محدودیتی بر طول نام اعضا اعمال شود. در صورت وجود، این محدودیت اغلب ۱۵ نویسه (معمول در قالبهای مربوط به a.out) یا ۱۶ نویسه (معمول در قالبهای مربوط به coff) است.
ابزار ar یک ابزار باینری به شمار میرود زیرا آرشیوهایی از این دست اغلب به عنوان کتابخانهها برای نگهداری زیرروالهای پرکاربرد استفاده میشوند. از آنجا که کتابخانهها اغلب به کتابخانههای دیگر وابسته هستند، ar میتواند در صورت تعیین گزینه --record-libdeps وابستگیهای یک کتابخانه را نیز ثبت کند.
هنگامی که اصلاحکننده s را مشخص کنید، ar نمایهای (اندیس) از نمادهای تعریفشده در ماژولهای شیء جابهجاشونده (relocatable object modules) درون آرشیو ایجاد میکند. پس از ایجاد، هر زمان که ar تغییری در محتویات آن ایجاد کند (به جز عملیات بهروزرسانی q)، این نمایه در آرشیو بهروزرسانی میشود. آرشیوی دارای چنین نمایهای، سرعت پیوند دادن به کتابخانه را افزایش میدهد و به روالهای درون کتابخانه اجازه میدهد بدون در نظر گرفتن جایگاهشان در آرشیو، یکدیگر را فراخوانی کنند.
میتوانید از nm -s یا nm --print-armap برای فهرست کردن جدول نمایه استفاده کنید. اگر آرشیوی فاقد جدول باشد، میتوان از شکل دیگری از ar به نام ranlib برای افزودن جدول استفاده کرد.
برنامه ar گنو میتواند به صورت اختیاری یک آرشیو کمحجم (thin) ایجاد کند که حاوی نمایه نمادها و ارجاعاتی به نسخههای اصلی فایلهای عضو آرشیو است. این ویژگی برای ساخت کتابخانهها جهت استفاده در درخت ساخت محلی مفید است، جایی که انتظار میرود اشیاء جابهجاشونده در دسترس باقی بمانند و کپی کردن محتوای هر شیء تنها موجب هدر رفتن زمان و فضا میشود.
یک آرشیو میتواند thin یا عادی باشد؛ نمیتواند هر دو حالت را به طور همزمان داشته باشد. پس از ایجاد آرشیو، فرمت آن را نمیتوان بدون حذف و ایجاد مجدد تغییر داد.
آرشیوهای کمحجم همچنین همسطح (flattened) هستند، به طوری که افزودن یک آرشیو thin به آرشیو thin دیگر، بر خلاف آرشیوهای عادی، باعث تو در تو شدن آن نمیشود؛ بلکه اعضای آرشیو اول به صورت تکتک به آرشیو دوم افزوده میشوند.
مسیرهای اعضای آرشیو به صورت نسبی نسبت به خود فایل آرشیو ذخیره میشوند.
برنامه ar گنو برای سازگاری با دو شیوه مختلف طراحی شده است. میتوانید عملکرد آن را با گزینههای خط فرمان کنترل کنید (مانند نسخههای مختلف ar در سیستمهای یونیکس)، یا اگر گزینه تکحرفی -M را مشخص کنید، میتوانید آن را با یک اسکریپت از ورودی استاندارد (مانند برنامه MRI "librarian") هدایت نمایید.
گزینهها (OPTIONS)
برنامه ar گنو به شما اجازه میدهد کد عملیات p و پرچمهای اصلاحکننده mod را به هر ترتیبی در اولین آرگومان خط فرمان ترکیب کنید.
در صورت تمایل، میتوانید اولین آرگومان خط فرمان را با یک خط تیره شروع کنید.
حرف کلیدی p مشخص میکند چه عملیاتی اجرا شود؛ این حرف میتواند یکی از موارد زیر باشد، اما فقط باید یکی از آنها را تعیین کنید:
- d
- حذف
ماژولها
از آرشیو.
نام
ماژولهای
مورد نظر
برای حذف را
به صورت member
مشخص کنید؛
اگر فایلی
برای حذف
مشخص نشود،
آرشیو
دستنخورده
باقی
میماند.
اگر اصلاحکننده v را مشخص کنید، ar هر ماژول را هنگام حذف فهرست میکند.
- m
- از این
عملیات
برای
جابهجایی
اعضا در
آرشیو
استفاده
کنید.
اگر نمادی در بیش از یک عضو تعریف شده باشد، ترتیب اعضا در آرشیو میتواند در نحوه پیوند برنامهها با استفاده از کتابخانه تفاوت ایجاد کند.
اگر هیچ اصلاحکنندهای همراه با m استفاده نشود، اعضای نامبرده در آرگومانهای member به انتهای آرشیو منتقل میشوند؛ میتوانید از اصلاحکنندههای a، b یا i برای انتقال آنها به مکانی مشخص استفاده کنید.
- p
- چاپ اعضای
مشخصشده
از آرشیو در
خروجی
استاندارد.
اگر
اصلاحکننده
v مشخص شود،
نام عضو قبل
از کپی
محتوای آن
در خروجی
استاندارد
نمایش داده
میشود.
اگر هیچ آرگومان member مشخص نکنید، تمام فایلهای موجود در آرشیو چاپ میشوند.
- q
- افزودن
سریع (Quick append)؛
از نظر
تاریخی،
افزودن
فایلهای
member به
انتهای archive،
بدون بررسی
برای
جایگزینی.
اصلاحکنندههای a، b و i روی این عملیات تاثیری ندارند و اعضای جدید همیشه در انتهای آرشیو قرار میگیرند.
اصلاحکننده v باعث میشود ar هر فایل را هنگام افزودن فهرست کند.
از آنجا که هدف این عملیات سرعت است، پیادهسازیهای ar این امکان را دارند که جدول نمادهای آرشیو را (در صورت وجود) بهروز نکنند. با این حال، از آنجا که بسیاری از سیستمها فرض میکنند جدول نمادها همیشه بهروز است، ar گنو حتی با افزودن سریع نیز جدول را بازسازی میکند.
نکته - ar گنو دستور qs را معادل r در نظر میگیرد؛ یعنی جایگزینی فایلهای موجود در آرشیو و افزودن فایلهای جدید به انتها.
- r
- درج
فایلهای
member در archive
(همراه با
جایگزینی).
این عملیات
با q متفاوت
است زیرا
اعضای
موجود در
صورت
همنام
بودن با
فایلهای
ورودی حذف و
جایگزین
میشوند.
اگر یکی از فایلهای نامبرده در member وجود نداشته باشد، ar پیام خطا نمایش میدهد و اعضای موجود در آرشیو با آن نام را بدون تغییر باقی میگذارد.
بهطور پیشفرض، اعضای جدید در انتهای فایل اضافه میشوند؛ اما میتوانید از یکی از اصلاحکنندههای a، b یا i برای تعیین موقعیت نسبت به یک عضو موجود استفاده کنید.
استفاده از اصلاحکننده v همراه با این عملیات، یک خط خروجی برای هر فایل درجشده به همراه یکی از حروف a یا r نمایش میدهد تا مشخص شود فایل ضمیمه شده است (هیچ عضو قدیمی حذف نشده) یا جایگزین شده است.
- s
- افزودن نمایه به آرشیو یا بهروزرسانی آن در صورت وجود. این دستور استثنایی بر قانون تکحرفی بودن دستورات است، زیرا میتوان از آن هم به عنوان دستور و هم به عنوان اصلاحکننده استفاده کرد؛ در هر دو حالت عملکرد یکسانی دارد.
- t
- نمایش یک
جدول از
محتویات
archive، یا
فایلهای
مشخصشده
در member که در
آرشیو
موجود
هستند.
معمولاً
فقط نام عضو
نمایش داده
میشود،
اما اگر
اصلاحکننده
O تعیین
شود، آفست
متناظر عضو
نیز نشان
داده خواهد
شد. در
نهایت،
برای
مشاهده
حالتها
(مجوزها)،
زمان،
مالک، گروه
و اندازه،
اصلاحکننده
v باید
اضافه شود.
اگر هیچ member تعیین نکنید، تمامی فایلهای موجود در آرشیو فهرست میشوند.
اگر بیش از یک فایل با نام یکسان (مثلاً fie) در یک آرشیو (مثلاً b.a) وجود داشته باشد، دستور ar t b.a fie فقط اولین نمونه را فهرست میکند؛ برای مشاهده همه آنها باید کل آرشیو را فهرست کنید (ar t b.a).
- x
- استخراج
اعضا (با
نام member) از
آرشیو.
میتوانید
از
اصلاحکننده
v همراه با
این عملیات
استفاده
کنید تا ar
نام هر عضو
را هنگام
استخراج
نمایش دهد.
اگر member مشخص نشود، تمامی فایلهای موجود در آرشیو استخراج میشوند.
فایلها را نمیتوان از یک آرشیو thin استخراج کرد، و محدودیتهایی برای استخراج از آرشیوهای ایجاد شده با P وجود دارد: مسیرها نباید مطلق باشند، نباید حاوی ".." باشند و زیرپوشهها در مسیر باید وجود داشته باشند. برای جلوگیری از این محدودیتها میتوان از گزینه --output برای تعیین پوشه خروجی استفاده کرد.
تعدادی اصلاحکننده (mod) میتوانند بلافاصله پس از حرف کلیدی p بیایند تا تغییراتی در رفتار عملیات اعمال کنند:
- a
- افزودن فایلهای جدید بعد از یکی از اعضای موجود در آرشیو. در صورت استفاده از اصلاحکننده a، نام عضو موجود باید به عنوان آرگومان relpos قبل از مشخصات archive ارائه شود.
- b
- افزودن فایلهای جدید قبل از یکی از اعضای موجود در آرشیو. در صورت استفاده از اصلاحکننده b، نام عضو موجود باید به عنوان آرگومان relpos قبل از مشخصات archive ارائه شود (مشابه i).
- c
- ساخت آرشیو. در صورت درخواست بهروزرسانی، اگر archive وجود نداشته باشد همیشه ایجاد میشود؛ اما مگر اینکه از قبل با این اصلاحکننده مشخص کرده باشید، یک پیام هشدار صادر خواهد شد.
- D
- اجرا در
حالت قطعی
(deterministic). هنگام
افزودن
فایلها و
نمایه
آرشیو،
برای
شناسههای
کاربری (UID)،
شناسههای
گروهی (GID) و
زمانها
مقدار صفر
استفاده
میشود و
مجوزهای
یکنواخت
برای همه
فایلها
اعمال
میگردد. در
صورت
استفاده از
این گزینه،
اجرای مکرر
ar با
گزینهها و
ورودیهای
یکسان،
خروجیهای
کاملاً
یکسان
تولید
میکند،
صرفنظر از
مالک،
گروه،
دسترسیها
یا زمان
تغییر
فایلهای
ورودی.
اگر binutils با گزینه --enable-deterministic-archives پیکربندی شده باشد، این حالت به طور پیشفرض فعال است و میتوان آن را با اصلاحکننده U غیرفعال کرد.
- f
- کوتاه کردن نامها در آرشیو. به طور معمول ar گنو نام فایلها با هر طولی را میپذیرد؛ این امر ممکن است باعث ایجاد آرشیوهایی شود که با برنامه بومی ar در برخی سیستمها سازگار نیستند. برای رفع این نگرانی، میتوان از اصلاحکننده f برای کوتاه کردن نام فایلها هنگام قرار دادن در آرشیو استفاده کرد.
- i
- درج فایلهای جدید قبل از یک عضو موجود در آرشیو. در صورت استفاده از اصلاحکننده i، نام عضو موجود باید به عنوان آرگومان relpos قبل از مشخصات archive ارائه شود (مشابه b).
- l
- تعیین وابستگیهای این کتابخانه. وابستگیها باید بلافاصله پس از این نویسه بیایند، از نحو یکسان با خط فرمان پیونددهنده (linker) استفاده کنند و در قالب یک آرگومان منفرد مشخص شوند (در صورت نیاز به چند مورد، باید درون نقلقول قرار گیرند؛ برای مثال l "-L/usr/local/lib -lmydep1 -lmydep2").
- N
- استفاده از پارامتر count. این گزینه زمانی استفاده میشود که چندین ورودی همنام در آرشیو وجود داشته باشد. نمونه شماره count از نام مورد نظر را از آرشیو استخراج یا حذف میکند.
- o
- حفظ تاریخهای اصلی اعضا هنگام استخراج. اگر این اصلاحکننده را تعیین نکنید، فایلهای استخراجشده برچسب زمانی زمان استخراج را دریافت میکنند.
- O
- نمایش آفست اعضا در داخل آرشیو. همراه با گزینه t استفاده میشود.
- P
- استفاده از
نام مسیر
کامل هنگام
تطبیق یا
ذخیره
نامها در
آرشیو.
آرشیوهای
ایجاد شده
با نام مسیر
کامل مطابق
استاندارد
POSIX نیستند و
ممکن است با
ابزارهایی
غیر از
ابزارهای
بهروز گنو
کار نکنند.
اصلاح چنین
آرشیوهایی
با ar گنو
بدون
استفاده از
P باعث حذف
مسیرهای
کامل
میشود،
مگر اینکه
آرشیو از
نوع thin باشد.
استفاده از
P هنگام
افزودن
فایلها به
آرشیو thin
مفید است
زیرا r بدون
P هنگام
انتخاب عضو
جایگزین
مسیر را
نادیده
میگیرد؛
به این
ترتیب:
ar rcST archive.a subdir/file1 subdir/file2 file1
باعث میشود اولین "subdir/file1" با "file1" از پوشه جاری جایگزین شود. افزودن P از این جایگزینی جلوگیری میکند.
- s
- نوشتن نمایه فایلهای شیء در آرشیو یا بهروزرسانی نمایه موجود، حتی اگر هیچ تغییر دیگری در آرشیو اعمال نشود. میتوانید از این پرچم اصلاحکننده همراه با هر عملیاتی یا به تنهایی استفاده کنید. اجرای ar s روی یک آرشیو معادل اجرای ranlib روی آن است.
- S
- عدم تولید جدول نمادهای آرشیو. این ویژگی میتواند ساخت یک کتابخانه بزرگ را در چندین مرحله تسریع کند. آرشیو حاصل را نمیتوان با پیونددهنده استفاده کرد. برای ساخت جدول نمادها، باید اصلاحکننده S را در آخرین اجرای ar حذف کنید یا ranlib را روی آرشیو اجرا نمایید.
- T
- نام مستعار منسوخشده برای --thin. استفاده از T توصیه نمیشود زیرا در بسیاری از پیادهسازیهای ar، این گزینه مطابق با مشخصات X/Open System Interface معنای متفاوتی دارد.
- u
- بهطور
معمول، ar r
تمام
فایلهای
فهرستشده
را در آرشیو
درج میکند.
اگر
میخواهید
فقط
فایلهایی
درج شوند که
جدیدتر از
اعضای
همنام
موجود
هستند، از
این
اصلاحکننده
استفاده
کنید.
اصلاحکننده
u فقط برای
عملیات r
(جایگزینی)
مجاز است.
به ویژه
ترکیب qu
مجاز نیست،
زیرا بررسی
برچسبهای
زمانی مزیت
سرعتی
عملیات q را
از بین
میبرد.
نکته - اگر آرشیوی به صورت قطعی (deterministic)، مثلاً با استفاده از اصلاحکننده D، ایجاد شده باشد، جایگزینی همیشه اتفاق میافتد و اصلاحکننده u بیاثر خواهد بود.
- U
- عدم اجرا
در حالت
قطعی. این
گزینه
معکوس
اصلاحکننده
D است:
فایلهای
اضافهشده
و نمایه
آرشیو
مقادیر
واقعی UID، GID،
برچسب
زمانی و
حالتهای
فایل خود را
دریافت
میکنند.
این حالت پیشفرض است مگر اینکه binutils با --enable-deterministic-archives پیکربندی شده باشد.
- v
- درخواست نسخه پرگو (verbose) از یک عملیات. بسیاری از عملیات با افزودن اصلاحکننده v اطلاعات اضافی مانند نام فایلهای پردازششده را نمایش میدهند.
- V
- نمایش شماره نسخه ar.
برنامه ar همچنین از برخی گزینههای خط فرمان پشتیبانی میکند که نه اصلاحکننده هستند و نه عمل، اما رفتار آن را به شیوههای خاصی تغییر میدهند:
- --help
- نمایش فهرست گزینههای خط فرمان پشتیبانیشده توسط ar و خروج.
- --version
- نمایش اطلاعات نسخه ar و خروج.
- -X32_64
- برنامه ar گزینه ابتدایی با نام -X32_64 را برای سازگاری با AIX نادیده میگیرد. رفتار ایجاد شده توسط این گزینه برای ar گنو پیشفرض است. برنامه ar از هیچیک از گزینههای دیگر -X پشتیبانی نمیکند؛ بهویژه از -X32 که پیشفرض ar در AIX است پشتیبانی نمیشود.
- --plugin name
- گزینه
اختیاری خط
فرمان --plugin name
باعث
میشود ar
پلاگین با
نام name را
بارگذاری
کند که
پشتیبانی
از
فرمتهای
فایل
بیشتر، از
جمله
فایلهای
شیء با
اطلاعات
بهینهسازی
زمان پیوند
(LTO)، را اضافه
میکند.
این گزینه تنها زمانی در دسترس است که زنجیره ابزار با پشتیبانی از پلاگین ساخته شده باشد.
اگر --plugin ارائه نشود اما پشتیبانی از پلاگین فعال باشد، ar روی فایلهای موجود در پوشه ${libdir}/bfd-plugins به ترتیب الفبایی پیمایش کرده و از اولین پلاگینی که از شیء مورد نظر پشتیبانی کند استفاده میکند.
توجه داشته باشید که این پوشه جستجوی پلاگین، با پوشه مورد استفاده توسط گزینه -plugin در ld یکسان نیست برای استفاده از پلاگین پیونددهنده در ar، باید آن را در پوشه ${libdir}/bfd-plugins کپی کرد. برای کامپایلهای مبتنی بر GCC، پلاگین پیونددهنده liblto_plugin.so.0.0.0 نام دارد. برای کامپایلهای مبتنی بر Clang، نام آن LLVMgold.so است. پلاگین GCC همیشه با نسخههای قبلی سازگار به عقب است، بنابراین کپی کردن جدیدترین نسخه کافی است.
- --target target
- گزینه اختیاری خط فرمان --target bfdname مشخص میکند که اعضای آرشیو در فرمت کد شیء متفاوتی از فرمت پیشفرض سیستم شما هستند.
- --output dirname
- گزینه --output
میتواند
برای مشخص
کردن مسیری
به پوشهای
استفاده
شود که
اعضای
آرشیو باید
در آن
استخراج
شوند. در
صورت عدم
تعیین این
گزینه، از
پوشه جاری
استفاده
خواهد شد.
نکته - اگرچه وجود این گزینه متضمن عملیات استخراج x است، اما این گزینه همچنان باید در خط فرمان درج شود.
- --record-libdeps libdeps
- گزینه --record-libdeps مشابه اصلاحکننده l است که به صورت گزینه بلند ارائه شده است.
- --thin
- تبدیل archive مشخصشده به یک آرشیو کمحجم(thin). اگر از قبل وجود داشته باشد و یک آرشیو عادی باشد، اعضای موجود باید در همان پوشه archive حاضر باشند.
- @file
- خواندن
گزینههای
خط فرمان از
file.
گزینههای
خواندهشده
به جای
گزینه اصلی
@file درج
میشوند.
اگر file وجود
نداشته
باشد یا
خوانده
نشود،
گزینه به
صورت لغوی
در نظر
گرفته شده و
حذف
نمیشود.
گزینهها در file با نویسههای فاصله از هم جدا میشوند. یک نویسه فاصله میتواند با قرار دادن کل گزینه درون نقلقول تکی یا دوگانه گنجانده شود. هر نویسهای (از جمله بکاسلش) میتواند با پیشوند کردن یک بکاسلش وارد شود. خود فایل میتواند حاوی گزینههای @file بیشتری باشد که به صورت بازگشتی پردازش خواهند شد.
همچنین ببینید (SEE ALSO)
حق نشر (COPYRIGHT)
Copyright (c) 1991-2025 Free Software Foundation, Inc.
مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخه ۱.۳ یا هر نسخه بعدی منتشر شده توسط بنیاد نرمافزارهای آزاد اعطا میشود؛ بدون بخشهای تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد. نسخهای از این مجوز در بخش تحت عنوان "GNU Free Documentation License" گنجانده شده است.
| 2026-01-23 | binutils-2.45.1 |