gnu Binary Utilities - 13. windres

Go to the first, previous, next, last section, table of contents.

# 13. 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. section 16.1 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.
`--define sym[=val]`
  Specify a `-D` option to pass to the preprocessor when reading an `rc` file.
`--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.
`--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.

Go to the first, previous, next, last section, table of contents.