Copyright (C) 2000-2012 |
GNU Info (gcc-295.info)Preprocessor OptionsOptions 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. automatically generated by info2www version 1.2.2.9 |