WINDRES(1) GNU Development Tools WINDRES(1)

windres - دست‌کاری منابع ویندوز

windres [options] [input-file] [output-file]

دستور windres منابع را از یک فایل ورودی خوانده و آن‌ها را در یک فایل خروجی کپی می‌کند. هر یک از این فایل‌ها می‌تواند در یکی از سه قالب زیر باشد:

"rc"
قالبی متنی که توسط Resource Compiler خوانده می‌شود.
"res"
قالبی باینری (دودویی) که توسط Resource Compiler تولید می‌شود.
"coff"
یک شیء (object) یا فایل اجرایی 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" را در ویندوز در دسترس قرار می‌دهد.

نام فایل ورودی. اگر از این گزینه استفاده نشود، windres از نخستین آرگومان غیرگزینه‌ای به عنوان نام فایل ورودی استفاده خواهد کرد. در صورت نبود هیچ آرگومان غیرگزینه‌ای، windres از ورودی استاندارد خواهد خواند. windres نمی‌تواند یک فایل COFF را از ورودی استاندارد بخواند.
نام فایل خروجی. اگر از این گزینه استفاده نشود، windres از نخستین آرگومان غیرگزینه‌ای پس از آرگومان‌های مربوط به نام فایل ورودی، به عنوان نام فایل خروجی استفاده خواهد کرد. اگر هیچ آرگومان غیرگزینه‌ای وجود نداشته باشد، windres در خروجی استاندارد خواهد نوشت. windres نمی‌تواند یک فایل COFF را در خروجی استاندارد بنویسد. توجه داشته باشید که جهت سازگاری با rc گزینهٔ -fo نیز پذیرفته می‌شود، اما استفاده از آن توصیه نمی‌شود.
قالب ورودی جهت خواندن. format می‌تواند res، rc یا coff باشد. اگر قالب ورودی مشخص نشود، windres همان‌طور که در بالا شرح داده شد آن را حدس خواهد زد.
قالب خروجی جهت تولید. format می‌تواند res، rc یا coff باشد. اگر قالب خروجی مشخص نشود، windres همان‌طور که در بالا شرح داده شد آن را حدس خواهد زد.
قالب BFD مورد استفاده برای یک فایل COFF را به عنوان ورودی یا خروجی مشخص می‌کند. این مقدار نام یک هدف (target) BFD است؛ برای مشاهدهٔ فهرستی از هدف‌های پشتیبانی‌شده می‌توانید از گزینهٔ --help استفاده کنید. در حالت عادی windres از قالب پیش‌فرض استفاده خواهد کرد که نخستین مورد در فهرست گزینهٔ --help است.
هنگامی که windres یک فایل "rc" را می‌خواند، ابتدا آن را از پیش‌پردازندهٔ C عبور می‌دهد. این گزینه می‌تواند برای تعیین پیش‌پردازندهٔ مورد استفاده به کار رود. پیش‌پردازندهٔ پیش‌فرض "gcc" است.
هنگامی که windres یک فایل "rc" را می‌خواند، ابتدا آن را از پیش‌پردازندهٔ C عبور می‌دهد. این گزینه می‌تواند برای مشخص کردن متن اضافی جهت ارسال به خط فرمان پیش‌پردازنده استفاده شود. این گزینه را می‌توان چندین بار برای افزودن گزینه‌های متعدد به خط فرمان پیش‌پردازنده به کار برد. اگر گزینهٔ --preprocessor مشخص نشده باشد، مجموعه‌ای پیش‌فرض از آرگومان‌های پیش‌پردازنده استفاده خواهد شد، و هر گزینهٔ --preprocessor-arg پس از آن‌ها در خط فرمان قرار خواهد گرفت. این آرگومان‌های پیش‌فرض عبارتند از "-E"، "-xc-header" و "-DRC_INVOKED".
یک دایرکتوری include را برای استفاده هنگام خواندن فایل "rc" مشخص می‌کند. windres این را به عنوان گزینهٔ -I به پیش‌پردازنده ارسال می‌کند. همچنین windres هنگام جستجو برای فایل‌های نام‌برده‌شده در فایل "rc"، این دایرکتوری را جستجو خواهد کرد. اگر آرگومان ارائه‌شده به این دستور با هر یک از formatهای پشتیبانی‌شده (همان‌طور که در گزینهٔ -J توضیح داده شد) مطابقت داشته باشد، یک هشدار منسوخ‌شدگی صادر شده و دقیقاً مانند گزینهٔ -J عمل خواهد کرد. برنامه‌های جدید نباید از این رفتار استفاده کنند. اگر نام یک دایرکتوری تصادفاً با یک format مطابقت داشت، به‌سادگی پیشوند ./ را به ابتدای آن اضافه کنید تا این رفتار سازگاری با گذشته غیرفعال شود.
یک گزینهٔ -D را برای ارسال به پیش‌پردازنده هنگام خواندن فایل "rc" مشخص می‌کند.
یک گزینهٔ -U را برای ارسال به پیش‌پردازنده هنگام خواندن فایل "rc" مشخص می‌کند.
جهت سازگاری با rc نادیده گرفته می‌شود.
فعال‌سازی حالت پرگو (verbose). در صورتی که پیش‌پردازنده‌ای را مشخص نکرده باشید، این گزینه به شما اعلام می‌کند که کدام پیش‌پردازنده در حال استفاده است.
صفحهٔ کد (codepage) پیش‌فرض را برای استفاده هنگام خواندن یک فایل "rc" مشخص می‌کند. مقدار val باید یک کد صفحهٔ کد در قالب هگزادسیمال با پیشوند 0x یا ده‌دهی باشد. دامنهٔ معتبر از صفر تا 0xffff است، اما معتبر بودن صفحهٔ کد به سیستم میزبان و پیکربندی وابسته است.
زبان پیش‌فرض را برای استفاده هنگام خواندن یک فایل "rc" مشخص می‌کند. مقدار val باید یک کد زبان در قالب هگزادسیمال باشد. هشت بیت پایینی زبان، و هشت بیت بالایی زیرزبان (sublanguage) را مشخص می‌کنند.
برای خواندن خروجی پیش‌پردازنده به‌جای استفاده از popen، از یک فایل موقت استفاده می‌کند. اگر پیاده‌سازی popen در سیستم میزبان دارای اشکال است، از این گزینه استفاده کنید (برای مثال، مشخص شده است نگارش‌های غیرانگلیسی خاصی از Windows 95 و Windows 98 دارای پیاده‌سازی معیوب popen هستند که در آن‌ها خروجی به جای لوله به کنسول فرستاده می‌شود).
برای خواندن خروجی پیش‌پردازنده از popen استفاده می‌کند، نه یک فایل موقت. این رفتار پیش‌فرض است.
خلاصه‌ای از شیوهٔ استفاده را چاپ می‌کند.
شماره نگارش windres را چاپ می‌کند.
اگر windres با تعریف "YYDEBUG" به عنوان 1 کامپایل شده باشد، این گزینه اشکال‌زدایی تجزیه‌کننده (parser) را فعال می‌کند.
@file
گزینه‌های خط فرمان را از file می‌خواند. گزینه‌های خوانده‌شده جایگزین گزینهٔ اصلی @file می‌شوند. اگر file وجود نداشته باشد یا خوانده نشود، با گزینه به صورت لفظی (عینی) برخورد شده و حذف نخواهد شد.

گزینه‌ها در file با فاصله‌گذاری سفید (whitespace) از یکدیگر جدا می‌شوند. یک نویسهٔ فاصله می‌تواند با محصور کردن کل گزینه در گیومهٔ تکی یا جفتی، درون آن گنجانده شود. هر نویسه‌ای (از جمله ممیز وارونه) را می‌توان با قرار دادن یک ممیز وارونه پیش از آن درج کرد. خود file نیز می‌تواند شامل گزینه‌های @file دیگری باشد؛ چنین گزینه‌هایی به صورت بازگشتی پردازش خواهند شد.

مدخل‌های Info برای binutils.

Copyright (c) 1991-2026 Free Software Foundation, Inc.

اجازهٔ کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نگارش 1.3 یا هر نگارش بعدی منتشر شده توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation)؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد اعطا می‌شود. یک نسخه از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.

2026-08-03 binutils-2.47