| WINDRES(1) | GNU Development Tools | WINDRES(1) |
نام (NAME)
windres - دستکاری و مدیریت منابع ویندوز
خلاصه دستور (SYNOPSIS)
windres [options] [input-file] [output-file]
توضیحات (DESCRIPTION)
برنامهٔ windres منابع (resources) را از یک فایل ورودی میخواند و آنها را در یک فایل خروجی کپی میکند. هر یک از این دو فایل میتوانند در یکی از سه قالب زیر باشند:
- "rc"
- یک قالب متنی که توسط کامپایلر منابع (Resource Compiler) خوانده میشود.
- "res"
- یک قالب دودویی (باینری) که توسط Resource Compiler تولید میشود.
- "coff"
- یک شیء یا فایل اجرایی COFF.
توضیحات دقیق این قالبهای مختلف در مستندات مایکروسافت در دسترس است.
هنگامی که windres از قالب "rc" به قالب "res" تبدیل میکند، عملکردی مشابه کامپایلر منابع ویندوز (Windows Resource Compiler) دارد. هنگامی که windres از قالب "res" به قالب "coff" تبدیل میکند، همانند برنامهٔ "CVTRES" در ویندوز عمل میکند.
هنگامی که windres یک فایل "rc" تولید میکند، خروجی مشابه قالبی است که برای ورودی انتظار میرود، اما دقیقاً با آن یکسان نیست. زمانی که یک فایل ورودی "rc" به نام یک فایل خارجی ارجاع میدهد، فایل خروجی "rc" در عوض محتویات آن فایل را درون خود قرار میدهد.
اگر قالب ورودی یا خروجی مشخص نشده باشد، windres آن را بر اساس نام فایل یا برای فایل ورودی بر پایهٔ محتویات فایل حدس خواهد زد. فایلی با پسوند .rc به عنوان یک فایل "rc"، فایلی با پسوند .res به عنوان یک فایل "res" و فایلی با پسوند .o یا .exe به عنوان یک فایل "coff" در نظر گرفته خواهد شد.
اگر هیچ فایل خروجیای مشخص نشده باشد، windres منابع را با قالب "rc" در خروجی استاندارد چاپ خواهد کرد.
کاربرد متداول این است که شما یک فایل "rc" بنویسید، با استفاده از windres آن را به یک فایل شیء COFF تبدیل کنید، و سپس فایل COFF را در برنامهٔ خود پیوند (link) دهید. این کار منابع توصیفشده در فایل "rc" را در ویندوز در دسترس قرار میدهد.
گزینهها (OPTIONS)
- -i filename
- --input filename
- نام فایل ورودی. اگر از این گزینه استفاده نشود، windres از نخستین آرگومان غیرگزینهای به عنوان نام فایل ورودی استفاده خواهد کرد. در صورت نبود هیچ آرگومان غیرگزینهای، windres از ورودی استاندارد میخواند. برنامهٔ windres نمیتواند یک فایل COFF را از ورودی استاندارد بخواند.
- -o filename
- --output filename
- نام فایل خروجی. اگر از این گزینه استفاده نشود، windres نخستین آرگومان غیرگزینهای را (پس از هر آرگومانی که برای نام فایل ورودی استفاده شده باشد) به عنوان نام فایل خروجی به کار میبرد. اگر هیچ آرگومان غیرگزینهای وجود نداشته باشد، windres در خروجی استاندارد مینویسد. windres نمیتواند یک فایل COFF را در خروجی استاندارد بنویسد. توجه داشته باشید که جهت سازگاری با rc گزینهٔ -fo نیز پذیرفته میشود، اما استفاده از آن توصیه نمیشود.
- -J format
- --input-format format
- قالب ورودی جهت خواندن. مقدار format میتواند res، rc یا coff باشد. اگر هیچ قالب ورودیای مشخص نشود، windres همانطور که در بالا توضیح داده شد آن را حدس خواهد زد.
- -O format
- --output-format format
- قالب خروجی جهت تولید. مقدار format میتواند res، rc یا coff باشد. اگر هیچ قالب خروجیای مشخص نشود، windres همانطور که در بالا توصیف شد آن را حدس خواهد زد.
- -F target
- --target target
- قالب BFD مورد استفاده برای فایل COFF را به عنوان ورودی یا خروجی تعیین میکند. این مقدار یک نام هدف (target) در BFD است؛ برای مشاهدهٔ فهرستی از اهداف پشتیبانیشده میتوانید از گزینهٔ --help استفاده کنید. بهطور معمول windres از قالب پیشفرض که نخستین مورد در فهرستِ گزینهٔ --help است، استفاده خواهد کرد.
- --preprocessor program
- هنگامی که windres یک فایل "rc" را میخواند، ابتدا آن را از پیشپردازندهٔ C عبور میدهد. این گزینه میتواند برای تعیین پیشپردازندهٔ مورد استفاده به کار رود. پیشپردازندهٔ پیشفرض "gcc" است.
- --preprocessor-arg option
- هنگامی که windres یک فایل "rc" را میخواند، ابتدا آن را از پیشپردازندهٔ C عبور میدهد. از این گزینه میتوان برای تعیین متنهای اضافی جهت ارسال به خط فرمان پیشپردازنده استفاده کرد. این گزینه میتواند چندین بار برای افزودن چندین گزینه به خط فرمان پیشپردازنده به کار رود. اگر گزینهٔ --preprocessor تعیین نشده باشد، مجموعهای از آرگومانهای پیشفرض پیشپردازنده استفاده خواهد شد و هر گزینهٔ --preprocessor-arg پس از آنها در خط فرمان قرار میگیرد. این آرگومانهای پیشفرض عبارتند از: "-E"، "-xc-header" و "-DRC_INVOKED".
- -I directory
- --include-dir directory
- یک دایرکتوری include را برای استفاده هنگام خواندن یک فایل "rc" تعیین میکند. windres این دایرکتوری را به عنوان گزینهٔ -I به پیشپردازنده ارسال میکند. همچنین windres هنگام جستجو برای فایلهای نامبرده در فایل "rc"، این دایرکتوری را میکاود. اگر آرگومان ارائهشده به این گزینه با هر یک از formatهای پشتیبانیشده (همانطور که در گزینهٔ -J شرح داده شده) مطابقت داشته باشد، هشداری مبنی بر منسوخشدگی صادر میکند و رفتاری دقیقاً همانند گزینهٔ -J خواهد داشت. برنامههای جدید نباید از این رفتار استفاده کنند. اگر نام یک دایرکتوری تصادفاً با یک format همنام بود، کافی است پیشوند ./ را به آن اضافه کنید تا سازگاری با گذشته غیرفعال شود.
- -D target
- --define sym[=val]
- گزینهٔ -D را جهت ارسال به پیشپردازنده هنگام خواندن فایل "rc" تعیین میکند.
- -U target
- --undefine sym
- گزینهٔ -U را جهت ارسال به پیشپردازنده هنگام خواندن فایل "rc" تعیین میکند.
- -r
- جهت سازگاری با rc نادیده گرفته میشود.
- -v
- حالت پرگو (verbose) را فعال میکند. اگر پیشپردازندهای را تعیین نکرده باشید، این گزینه مشخص میکند که از چه پیشپردازندهای استفاده شده است.
- -c val
- --codepage val
- صفحهکد (codepage) پیشفرض مورد استفاده هنگام خواندن یک فایل "rc" را تعیین میکند. مقدار val باید یک کد صفحهکد مبنای شانزده با پیشوند 0x یا مبنای ده باشد. دامنهٔ مجاز از صفر تا 0xffff است، اما معتبر بودن صفحهکد به میزبان و پیکربندی بستگی دارد.
- -l val
- --language val
- زبان پیشفرض مورد استفاده هنگام خواندن یک فایل "rc" را مشخص میکند. مقدار val باید یک کد زبان مبنای شانزده باشد. هشت بیت پایین زبان را مشخص کرده و هشت بیت بالا زیرزبان (sublanguage) را تعیین میکنند.
- --use-temp-file
- برای خواندن خروجی پیشپردازنده به جای استفاده از popen، از یک فایل موقت استفاده میکند. در صورتی از این گزینه استفاده کنید که پیادهسازی popen روی میزبان باگ داشته باشد (برای نمونه، مشخص شده که نسخههای غیرانگلیسی خاصی از Windows 95 و Windows 98 دارای پیادهسازی معیوب popen هستند که در آنها خروجی به جای لوله به کنسول فرستاده میشود).
- --no-use-temp-file
- برای خواندن خروجی پیشپردازنده از popen استفاده میکند، نه یک فایل موقت. این رفتار پیشفرض است.
- -h
- --help
- خلاصهای از نحوهٔ استفاده را چاپ میکند.
- -V
- --version
- شماره نسخهٔ windres را چاپ میکند.
- --yydebug
- اگر windres به گونهای کامپایل شده باشد که "YYDEBUG" با مقدار 1 تعریف شده باشد، این گزینه اشکالزدایی تجزیهکننده (parser debugging) را فعال میکند.
- @file
- گزینههای
خط فرمان را
از file
میخواند.
گزینههای
خواندهشده
در محل
قرارگیری
گزینهٔ
اصلی @file
جایگزین
میشوند.
اگر file وجود
نداشته
باشد یا
قابل
خواندن
نباشد، با
گزینه به
صورت متنی
برخورد
خواهد شد و
حذف
نمیشود.
گزینهها در file با نویسهٔ فاصلهٔ خالی (whitespace) از یکدیگر جدا میشوند. با محصور کردن کل گزینه درون علامت نقلقول تکی یا دوتایی میتوان یک نویسهٔ فاصله را در گزینه گنجاند. هر نویسهای (از جمله بکاسلش) میتواند با قرار دادن پیشوند بکاسلش قبل از آن درج گردد. خود file نیز میتواند شامل گزینههای @file دیگری باشد؛ چنین گزینههایی بهصورت بازگشتی پردازش خواهند شد.
همچنین ببینید (SEE ALSO)
مدخلهای Info برای binutils.
کپیرایت و تکثیر (COPYRIGHT)
Copyright (c) 1991-2026 Free Software Foundation, Inc.
مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ متأخرتر منتشرشده توسط بنیاد نرمافزارهای آزاد (Free Software Foundation) اعطا میشود؛ بدون بخشهای تغییرناپذیر، بدون متنهای جلد رویی، و بدون متنهای جلد پشتی. یک کپی از این مجوز در بخش تحت عنوان «GNU Free Documentation License» گنجانده شده است.
| 2026-08-26 | binutils-2.47 |