Contents|Index|Previous|Next
Options
controlling the preprocessor
The following 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 the -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 directorys 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 directorys 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 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 filename 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 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 filenames. 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 output mentions 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.
The -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.
Top|Contents|Index|Previous|Next