WINDRES(1) GNU Development Tools WINDRES(1)

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

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

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

"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. این یک نام هدف در 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.

حق نشر (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