[Contents] [Back] [Prev] [Up] [Next] [Forward]
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. See section Options for Directory Search, 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
(see section Environment Variables Affecting GNU CC).
-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.
[Contents] [Back] [Prev] [Up] [Next] [Forward]