---
name: "windres"
section: "1"
platform: "linux"
package: "binutils"
version: "2.12.90.0.1-4"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/windres"
---

# windres(1)

manipulate Windows resources.

## NAME

windres - manipulate Windows resources.

## SYNOPSIS

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

## DESCRIPTION

**windres** reads resources from an input file and copies them into an output file.  Either file may be in one of three formats:

- "rc"

  A text format read by the Resource Compiler.

- "res"

  A binary format generated by the Resource Compiler.

- "coff"

  A COFF object or executable.

The exact description of these different formats is available in documentation from Microsoft.

When **windres** converts from the `"rc"` format to the `"res"` format, it is acting like the Windows Resource Compiler.  When **windres** converts from the `"res"` format to the `"coff"` format, it is acting like the Windows `"CVTRES"` program.

When **windres** generates an `"rc"` file, the output is similar but not identical to the format expected for the input.  When an input `"rc"` file refers to an external filename, an output `"rc"` file will instead include the file contents.

If the input or output format is not specified, **windres** will guess based on the file name, or, for the input file, the file contents. A file with an extension of *.rc* will be treated as an `"rc"` file, a file with an extension of *.res* will be treated as a `"res"` file, and a file with an extension of *.o* or *.exe* will be treated as a `"coff"` file.

If no output file is specified, **windres** will print the resources in `"rc"` format to standard output.

The normal use is for you to write an `"rc"` file, use **windres** to convert it to a COFF object file, and then link the COFF file into your application.  This will make the resources described in the `"rc"` file available to Windows.

## OPTIONS

- **-i** *filename*

  - **--input** *filename*

  The name of the input file.  If this option is not used, then **windres** will use the first non-option argument as the input file name.  If there are no non-option arguments, then **windres** will read from standard input.  **windres** can not read a COFF file from standard input.

- **-o** *filename*

  - **--output** *filename*

  The name of the output file.  If this option is not used, then **windres** will use the first non-option argument, after any used for the input file name, as the output file name.  If there is no non-option argument, then **windres** will write to standard output. **windres** can not write a COFF file to standard output.

- **-I** *format*

  - **--input-format** *format*

  The input format to read.  *format* may be **res**, **rc**, or **coff**.  If no input format is specified, **windres** will guess, as described above.

- **-O** *format*

  - **--output-format** *format*

  The output format to generate.  *format* may be **res**, **rc**, or **coff**.  If no output format is specified, **windres** will guess, as described above.

- **-F** *target*

  - **--target** *target*

  Specify the BFD format to use for a COFF file as input or output.  This is a BFD target name; you can use the **--help** option to see a list of supported targets.  Normally **windres** will use the default format, which is the first one listed by the **--help** option.

- **--preprocessor** *program*

  When **windres** reads an `"rc"` file, it runs it through the C preprocessor first.  This option may be used to specify the preprocessor to use, including any leading arguments.  The default preprocessor argument is `"gcc -E -xc-header -DRC_INVOKED"`.

- **--include-dir** *directory*

  Specify an include directory to use when reading an `"rc"` file. **windres** will pass this to the preprocessor as an **-I** option.  **windres** will also search this directory when looking for files named in the `"rc"` file.

- **-D** *target*

  - **--define** *sym***\[=***val***\]**

  Specify a **-D** option to pass to the preprocessor when reading an `"rc"` file.

- **-v**

  Enable verbose mode.  This tells you what the preprocessor is if you didn't specify one.

- **--language** *val*

  Specify the default language to use when reading an `"rc"` file. *val* should be a hexadecimal language code.  The low eight bits are the language, and the high eight bits are the sublanguage.

- **--use-temp-file**

  Use a temporary file to instead of using popen to read the output of the preprocessor. Use this option if the popen implementation is buggy  on the host (eg., certain non-English language versions of Windows 95 and  Windows 98 are known to have buggy popen where the output will instead go the console).

- **--no-use-temp-file**

  Use popen, not a temporary file, to read the output of the preprocessor. This is the default behaviour.

- **--help**

  Prints a usage summary.

- **--version**

  Prints the version number for **windres**.

- **--yydebug**

  If **windres** is compiled with `"YYDEBUG"` defined as `1`, this will turn on parser debugging.

## SEE ALSO

the Info entries for *binutils*.

## COPYRIGHT

Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the license is included in the section entitled "GNU Free Documentation License".
