gcc.info: Preprocessor Options
Go forward to Assembler Options
Go backward to Optimize Options
Go up to Invoking GCC
Go to the top op gcc
Options Controlling the Preprocessor
These options control the C preprocessor, which is run on each C
source file before actual compilation.
If you use the `-E' option, nothing is done except preprocessing.
Some of these options make sense only together with `-E' because they
cause the preprocessor output to be unsuitable for actual compilation.
`-include FILE'
Process FILE as input before processing the regular input file.
In effect, the contents of FILE are compiled first. Any `-D' and
`-U' options on the command line are always processed before
`-include FILE', regardless of the order in which they are
written. All the `-include' and `-imacros' options are processed
in the order in which they are written.
`-imacros FILE'
Process FILE as input, discarding the resulting output, before
processing the regular input file. Because the output generated
from FILE is discarded, the only effect of `-imacros FILE' is to
make the macros defined in FILE available for use in the main
input.
Any `-D' and `-U' options on the command line are always processed
before `-imacros FILE', regardless of the order in which they are
written. All the `-include' and `-imacros' options are processed
in the order in which they are written.
`-idirafter DIR'
Add the directory DIR to the second include path. The directories
on the second include path are searched when a header file is not
found in any of the directories in the main include path (the one
that `-I' adds to).
`-iprefix PREFIX'
Specify PREFIX as the prefix for subsequent `-iwithprefix' options.
`-iwithprefix DIR'
Add a directory to the second include path. The directory's name
is made by concatenating PREFIX and DIR, where PREFIX was
specified previously with `-iprefix'. If you have not specified a
prefix yet, the directory containing the installed passes of the
compiler is used as the default.
`-iwithprefixbefore DIR'
Add a directory to the main include path. The directory's name is
made by concatenating PREFIX and DIR, as in the case of
`-iwithprefix'.
`-isystem DIR'
Add a directory to the beginning of the second include path,
marking it as a system directory, so that it gets the same special
treatment as is applied to the standard system directories.
`-nostdinc'
Do not search the standard system directories for header files.
Only the directories you have specified with `-I' options (and the
current directory, if appropriate) are searched. *Note Directory
Options::, for information on `-I'.
By using both `-nostdinc' and `-I-', you can limit the include-file
search path to only those directories you specify explicitly.
`-undef'
Do not predefine any nonstandard macros. (Including architecture
flags).
`-E'
Run only the C preprocessor. Preprocess all the C source files
specified and output the results to standard output or to the
specified output file.
`-C'
Tell the preprocessor not to discard comments. Used with the `-E'
option.
`-P'
Tell the preprocessor not to generate `#line' directives. Used
with the `-E' option.
`-M'
Tell the preprocessor to output a rule suitable for `make'
describing the dependencies of each object file. For each source
file, the preprocessor outputs one `make'-rule whose target is the
object file name for that source file and whose dependencies are
all the `#include' header files it uses. This rule may be a
single line or may be continued with `\'-newline if it is long.
The list of rules is printed on standard output instead of the
preprocessed C program.
`-M' implies `-E'.
Another way to specify output of a `make' rule is by setting the
environment variable `DEPENDENCIES_OUTPUT' (*note Environment
Variables::.).
`-MM'
Like `-M' but the output mentions only the user header files
included with `#include "FILE"'. System header files included
with `#include <FILE>' are omitted.
`-MD'
Like `-M' but the dependency information is written to a file made
by replacing ".c" with ".d" at the end of the input file names.
This is in addition to compiling the file as specified--`-MD' does
not inhibit ordinary compilation the way `-M' does.
In Mach, you can use the utility `md' to merge multiple dependency
files into a single dependency file suitable for using with the
`make' command.
`-MMD'
Like `-MD' except mention only user header files, not system
header files.
`-MG'
Treat missing header files as generated files and assume they live
in the same directory as the source file. If you specify `-MG',
you must also specify either `-M' or `-MM'. `-MG' is not
supported with `-MD' or `-MMD'.
`-H'
Print the name of each header file used, in addition to other
normal activities.
`-AQUESTION(ANSWER)'
Assert the answer ANSWER for QUESTION, in case it is tested with a
preprocessing conditional such as `#if #QUESTION(ANSWER)'. `-A-'
disables the standard assertions that normally describe the target
machine.
`-DMACRO'
Define macro MACRO with the string `1' as its definition.
`-DMACRO=DEFN'
Define macro MACRO as DEFN. All instances of `-D' on the command
line are processed before any `-U' options.
`-UMACRO'
Undefine macro MACRO. `-U' options are evaluated after all `-D'
options, but before any `-include' and `-imacros' options.
`-dM'
Tell the preprocessor to output only a list of the macro
definitions that are in effect at the end of preprocessing. Used
with the `-E' option.
`-dD'
Tell the preprocessing to pass all macro definitions into the
output, in their proper sequence in the rest of the output.
`-dN'
Like `-dD' except that the macro arguments and contents are
omitted. Only `#define NAME' is included in the output.
`-trigraphs'
Support ANSI C trigraphs. The `-ansi' option also has this effect.
`-Wp,OPTION'
Pass OPTION as an option to the preprocessor. If OPTION contains
commas, it is split into multiple options at the commas.
Created Wed Sep 1 16:42:17 2004 on bee with info_to_html version 0.9.6.