Node:windres, Next:dlltool, Previous:nlmconv, Up:Top

## windres

`windres` may be used to manipulate Windows resources.

> Warning: `windres` is not always built as part of the binary utilities, since it is only useful for Windows targets.

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

`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.

`-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. Target Selection.
`--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.