WINDRES(1) GNU Development Tools WINDRES(1)

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

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

برنامهٔ 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" را در ویندوز در دسترس قرار می‌دهد.

نام فایل ورودی. اگر از این گزینه استفاده نشود، 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 debugging) را فعال می‌کند.
@file
گزینه‌های خط فرمان را از file می‌خواند. گزینه‌های خوانده‌شده در محل قرارگیری گزینهٔ اصلی @file جایگزین می‌شوند. اگر file وجود نداشته باشد یا قابل خواندن نباشد، با گزینه به صورت متنی برخورد خواهد شد و حذف نمی‌شود.

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

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

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