<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1987-2015 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation.  A copy of
the license is included in the
section entitled "GNU Free Documentation License".

This manual contains no Invariant Sections.  The Front-Cover Texts are
(a) (see below), and the Back-Cover Texts are (b) (see below).

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The C Preprocessor: Invocation</title>

<meta name="description" content="The C Preprocessor: Invocation">
<meta name="keywords" content="The C Preprocessor: Invocation">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index-of-Directives.html#Index-of-Directives" rel="index" title="Index of Directives">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="Environment-Variables.html#Environment-Variables" rel="next" title="Environment Variables">
<link href="Differences-from-previous-versions.html#Differences-from-previous-versions" rel="prev" title="Differences from previous versions">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Invocation"></a>
<div class="header">
<p>
Next: <a href="Environment-Variables.html#Environment-Variables" accesskey="n" rel="next">Environment Variables</a>, Previous: <a href="Implementation-Details.html#Implementation-Details" accesskey="p" rel="prev">Implementation Details</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Directives.html#Index-of-Directives" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Invocation-1"></a>
<h2 class="chapter">12 Invocation</h2>
<a name="index-invocation"></a>
<a name="index-command-line"></a>

<p>Most often when you use the C preprocessor you will not have to invoke it
explicitly: the C compiler will do so automatically.  However, the
preprocessor is sometimes useful on its own.  All the options listed
here are also acceptable to the C compiler and have the same meaning,
except that the C compiler has different rules for specifying the output
file.
</p>
<p><em>Note:</em> Whether you use the preprocessor by way of <code>gcc</code>
or <code>cpp</code>, the <em>compiler driver</em> is run first.  This
program&rsquo;s purpose is to translate your command into invocations of the
programs that do the actual work.  Their command line interfaces are
similar but not identical to the documented interface, and may change
without notice.
</p>

<p>The C preprocessor expects two file names as arguments, <var>infile</var> and
<var>outfile</var>.  The preprocessor reads <var>infile</var> together with any
other files it specifies with &lsquo;<samp>#include</samp>&rsquo;.  All the output generated
by the combined input files is written in <var>outfile</var>.
</p>
<p>Either <var>infile</var> or <var>outfile</var> may be <samp>-</samp>, which as
<var>infile</var> means to read from standard input and as <var>outfile</var>
means to write to standard output.  Also, if either file is omitted, it
means the same as if <samp>-</samp> had been specified for that file.
</p>
<p>Unless otherwise noted, or the option ends in &lsquo;<samp>=</samp>&rsquo;, all options
which take an argument may have that argument appear either immediately
after the option, or with a space between option and argument:
<samp>-Ifoo</samp> and <samp>-I foo</samp> have the same effect.
</p>
<a name="index-grouping-options"></a>
<a name="index-options_002c-grouping"></a>
<p>Many options have multi-letter names; therefore multiple single-letter
options may <em>not</em> be grouped: <samp>-dM</samp> is very different from
&lsquo;<samp><span class="nolinebreak">-d</span>&nbsp;<span class="nolinebreak">-M</span></samp>&rsquo;<!-- /@w -->.
</p>
<a name="index-options"></a>



<dl compact="compact">
<dt><code>-D <var>name</var></code></dt>
<dd><a name="index-D"></a>
<p>Predefine <var>name</var> as a macro, with definition <code>1</code>.
</p>
</dd>
<dt><code>-D <var>name</var>=<var>definition</var></code></dt>
<dd><p>The contents of <var>definition</var> are tokenized and processed as if
they appeared during translation phase three in a &lsquo;<samp>#define</samp>&rsquo;
directive.  In particular, the definition will be truncated by
embedded newline characters.
</p>
<p>If you are invoking the preprocessor from a shell or shell-like
program you may need to use the shell&rsquo;s quoting syntax to protect
characters such as spaces that have a meaning in the shell syntax.
</p>
<p>If you wish to define a function-like macro on the command line, write
its argument list with surrounding parentheses before the equals sign
(if any).  Parentheses are meaningful to most shells, so you will need
to quote the option.  With <code>sh</code> and <code>csh</code>,
<samp>-D'<var>name</var>(<var>args&hellip;</var>)=<var>definition</var>'</samp> works.
</p>
<p><samp>-D</samp> and <samp>-U</samp> options are processed in the order they
are given on the command line.  All <samp>-imacros <var>file</var></samp> and
<samp>-include <var>file</var></samp> options are processed after all
<samp>-D</samp> and <samp>-U</samp> options.
</p>
</dd>
<dt><code>-U <var>name</var></code></dt>
<dd><a name="index-U"></a>
<p>Cancel any previous definition of <var>name</var>, either built in or
provided with a <samp>-D</samp> option.
</p>
</dd>
<dt><code>-undef</code></dt>
<dd><a name="index-undef"></a>
<p>Do not predefine any system-specific or GCC-specific macros.  The
standard predefined macros remain defined.
See <a href="Standard-Predefined-Macros.html#Standard-Predefined-Macros">Standard Predefined Macros</a>.
</p>
</dd>
<dt><code>-I <var>dir</var></code></dt>
<dd><a name="index-I"></a>
<p>Add the directory <var>dir</var> to the list of directories to be searched
for header files.
See <a href="Search-Path.html#Search-Path">Search Path</a>.
Directories named by <samp>-I</samp> are searched before the standard
system include directories.  If the directory <var>dir</var> is a standard
system include directory, the option is ignored to ensure that the
default search order for system directories and the special treatment
of system headers are not defeated
(see <a href="System-Headers.html#System-Headers">System Headers</a>)
.
If <var>dir</var> begins with <code>=</code>, then the <code>=</code> will be replaced
by the sysroot prefix; see <samp>--sysroot</samp> and <samp>-isysroot</samp>.
</p>
</dd>
<dt><code>-o <var>file</var></code></dt>
<dd><a name="index-o"></a>
<p>Write output to <var>file</var>.  This is the same as specifying <var>file</var>
as the second non-option argument to <code>cpp</code>.  <code>gcc</code> has a
different interpretation of a second non-option argument, so you must
use <samp>-o</samp> to specify the output file.
</p>
</dd>
<dt><code>-Wall</code></dt>
<dd><a name="index-Wall"></a>
<p>Turns on all optional warnings which are desirable for normal code.
At present this is <samp>-Wcomment</samp>, <samp>-Wtrigraphs</samp>,
<samp>-Wmultichar</samp> and a warning about integer promotion causing a
change of sign in <code>#if</code> expressions.  Note that many of the
preprocessor&rsquo;s warnings are on by default and have no options to
control them.
</p>
</dd>
<dt><code>-Wcomment</code></dt>
<dt><code>-Wcomments</code></dt>
<dd><a name="index-Wcomment"></a>
<a name="index-Wcomments"></a>
<p>Warn whenever a comment-start sequence &lsquo;<samp>/*</samp>&rsquo; appears in a &lsquo;<samp>/*</samp>&rsquo;
comment, or whenever a backslash-newline appears in a &lsquo;<samp>//</samp>&rsquo; comment.
(Both forms have the same effect.)
</p>
</dd>
<dt><code>-Wtrigraphs</code></dt>
<dd><a name="index-Wtrigraphs"></a>
<a name="Wtrigraphs"></a><p>Most trigraphs in comments cannot affect the meaning of the program.
However, a trigraph that would form an escaped newline (&lsquo;<samp>??/</samp>&rsquo; at
the end of a line) can, by changing where the comment begins or ends.
Therefore, only trigraphs that would form escaped newlines produce
warnings inside a comment.
</p>
<p>This option is implied by <samp>-Wall</samp>.  If <samp>-Wall</samp> is not
given, this option is still enabled unless trigraphs are enabled.  To
get trigraph conversion without warnings, but get the other
<samp>-Wall</samp> warnings, use &lsquo;<samp>-trigraphs -Wall -Wno-trigraphs</samp>&rsquo;.
</p>
</dd>
<dt><code>-Wtraditional</code></dt>
<dd><a name="index-Wtraditional"></a>
<p>Warn about certain constructs that behave differently in traditional and
ISO C.  Also warn about ISO C constructs that have no traditional C
equivalent, and problematic constructs which should be avoided.
See <a href="Traditional-Mode.html#Traditional-Mode">Traditional Mode</a>.
</p>
</dd>
<dt><code>-Wundef</code></dt>
<dd><a name="index-Wundef"></a>
<p>Warn whenever an identifier which is not a macro is encountered in an
&lsquo;<samp>#if</samp>&rsquo; directive, outside of &lsquo;<samp>defined</samp>&rsquo;.  Such identifiers are
replaced with zero.
</p>
</dd>
<dt><code>-Wunused-macros</code></dt>
<dd><a name="index-Wunused_002dmacros"></a>
<p>Warn about macros defined in the main file that are unused.  A macro
is <em>used</em> if it is expanded or tested for existence at least once.
The preprocessor will also warn if the macro has not been used at the
time it is redefined or undefined.
</p>
<p>Built-in macros, macros defined on the command line, and macros
defined in include files are not warned about.
</p>
<p><em>Note:</em> If a macro is actually used, but only used in skipped
conditional blocks, then CPP will report it as unused.  To avoid the
warning in such a case, you might improve the scope of the macro&rsquo;s
definition by, for example, moving it into the first skipped block.
Alternatively, you could provide a dummy use with something like:
</p>
<div class="smallexample">
<pre class="smallexample">#if defined the_macro_causing_the_warning
#endif
</pre></div>

</dd>
<dt><code>-Wendif-labels</code></dt>
<dd><a name="index-Wendif_002dlabels"></a>
<p>Warn whenever an &lsquo;<samp>#else</samp>&rsquo; or an &lsquo;<samp>#endif</samp>&rsquo; are followed by text.
This usually happens in code of the form
</p>
<div class="smallexample">
<pre class="smallexample">#if FOO
&hellip;
#else FOO
&hellip;
#endif FOO
</pre></div>

<p>The second and third <code>FOO</code> should be in comments, but often are not
in older programs.  This warning is on by default.
</p>
</dd>
<dt><code>-Werror</code></dt>
<dd><a name="index-Werror"></a>
<p>Make all warnings into hard errors.  Source code which triggers warnings
will be rejected.
</p>
</dd>
<dt><code>-Wsystem-headers</code></dt>
<dd><a name="index-Wsystem_002dheaders"></a>
<p>Issue warnings for code in system headers.  These are normally unhelpful
in finding bugs in your own code, therefore suppressed.  If you are
responsible for the system library, you may want to see them.
</p>
</dd>
<dt><code>-w</code></dt>
<dd><a name="index-w"></a>
<p>Suppress all warnings, including those which GNU CPP issues by default.
</p>
</dd>
<dt><code>-pedantic</code></dt>
<dd><a name="index-pedantic"></a>
<p>Issue all the mandatory diagnostics listed in the C standard.  Some of
them are left out by default, since they trigger frequently on harmless
code.
</p>
</dd>
<dt><code>-pedantic-errors</code></dt>
<dd><a name="index-pedantic_002derrors"></a>
<p>Issue all the mandatory diagnostics, and make all mandatory diagnostics
into errors.  This includes mandatory diagnostics that GCC issues
without &lsquo;<samp>-pedantic</samp>&rsquo; but treats as warnings.
</p>
</dd>
<dt><code>-M</code></dt>
<dd><a name="index-M"></a>
<a name="index-make"></a>
<a name="index-dependencies_002c-make"></a>
<p>Instead of outputting the result of preprocessing, output a rule
suitable for <code>make</code> describing the dependencies of the main
source file.  The preprocessor outputs one <code>make</code> rule containing
the object file name for that source file, a colon, and the names of all
the included files, including those coming from <samp>-include</samp> or
<samp>-imacros</samp> command line options.
</p>
<p>Unless specified explicitly (with <samp>-MT</samp> or <samp>-MQ</samp>), the
object file name consists of the name of the source file with any
suffix replaced with object file suffix and with any leading directory
parts removed.  If there are many included files then the rule is
split into several lines using &lsquo;<samp>\</samp>&rsquo;-newline.  The rule has no
commands.
</p>
<p>This option does not suppress the preprocessor&rsquo;s debug output, such as
<samp>-dM</samp>.  To avoid mixing such debug output with the dependency
rules you should explicitly specify the dependency output file with
<samp>-MF</samp>, or use an environment variable like
<code>DEPENDENCIES_OUTPUT</code> (see <a href="Environment-Variables.html#Environment-Variables">Environment Variables</a>).  Debug output
will still be sent to the regular output stream as normal.
</p>
<p>Passing <samp>-M</samp> to the driver implies <samp>-E</samp>, and suppresses
warnings with an implicit <samp>-w</samp>.
</p>
</dd>
<dt><code>-MM</code></dt>
<dd><a name="index-MM"></a>
<p>Like <samp>-M</samp> but do not mention header files that are found in
system header directories, nor header files that are included,
directly or indirectly, from such a header.
</p>
<p>This implies that the choice of angle brackets or double quotes in an
&lsquo;<samp>#include</samp>&rsquo; directive does not in itself determine whether that
header will appear in <samp>-MM</samp> dependency output.  This is a
slight change in semantics from GCC versions 3.0 and earlier.
</p>
<a name="dashMF"></a></dd>
<dt><code>-MF <var>file</var></code></dt>
<dd><a name="index-MF"></a>
<p>When used with <samp>-M</samp> or <samp>-MM</samp>, specifies a
file to write the dependencies to.  If no <samp>-MF</samp> switch is given
the preprocessor sends the rules to the same place it would have sent
preprocessed output.
</p>
<p>When used with the driver options <samp>-MD</samp> or <samp>-MMD</samp>,
<samp>-MF</samp> overrides the default dependency output file.
</p>
</dd>
<dt><code>-MG</code></dt>
<dd><a name="index-MG"></a>
<p>In conjunction with an option such as <samp>-M</samp> requesting
dependency generation, <samp>-MG</samp> assumes missing header files are
generated files and adds them to the dependency list without raising
an error.  The dependency filename is taken directly from the
<code>#include</code> directive without prepending any path.  <samp>-MG</samp>
also suppresses preprocessed output, as a missing header file renders
this useless.
</p>
<p>This feature is used in automatic updating of makefiles.
</p>
</dd>
<dt><code>-MP</code></dt>
<dd><a name="index-MP"></a>
<p>This option instructs CPP to add a phony target for each dependency
other than the main file, causing each to depend on nothing.  These
dummy rules work around errors <code>make</code> gives if you remove header
files without updating the <samp>Makefile</samp> to match.
</p>
<p>This is typical output:
</p>
<div class="smallexample">
<pre class="smallexample">test.o: test.c test.h

test.h:
</pre></div>

</dd>
<dt><code>-MT <var>target</var></code></dt>
<dd><a name="index-MT"></a>

<p>Change the target of the rule emitted by dependency generation.  By
default CPP takes the name of the main input file, deletes any
directory components and any file suffix such as &lsquo;<samp>.c</samp>&rsquo;, and
appends the platform&rsquo;s usual object suffix.  The result is the target.
</p>
<p>An <samp>-MT</samp> option will set the target to be exactly the string you
specify.  If you want multiple targets, you can specify them as a single
argument to <samp>-MT</samp>, or use multiple <samp>-MT</samp> options.
</p>
<p>For example, <samp><span class="nolinebreak">-MT</span>&nbsp;'$(objpfx)foo.o'<!-- /@w --></samp> might give
</p>
<div class="smallexample">
<pre class="smallexample">$(objpfx)foo.o: foo.c
</pre></div>

</dd>
<dt><code>-MQ <var>target</var></code></dt>
<dd><a name="index-MQ"></a>

<p>Same as <samp>-MT</samp>, but it quotes any characters which are special to
Make.  <samp><span class="nolinebreak">-MQ</span>&nbsp;'$(objpfx)foo.o'<!-- /@w --></samp> gives
</p>
<div class="smallexample">
<pre class="smallexample">$$(objpfx)foo.o: foo.c
</pre></div>

<p>The default target is automatically quoted, as if it were given with
<samp>-MQ</samp>.
</p>
</dd>
<dt><code>-MD</code></dt>
<dd><a name="index-MD"></a>
<p><samp>-MD</samp> is equivalent to <samp>-M -MF <var>file</var></samp>, except that
<samp>-E</samp> is not implied.  The driver determines <var>file</var> based on
whether an <samp>-o</samp> option is given.  If it is, the driver uses its
argument but with a suffix of <samp>.d</samp>, otherwise it takes the name
of the input file, removes any directory components and suffix, and
applies a <samp>.d</samp> suffix.
</p>
<p>If <samp>-MD</samp> is used in conjunction with <samp>-E</samp>, any
<samp>-o</samp> switch is understood to specify the dependency output file
(see <a href="#dashMF">-MF</a>), but if used without <samp>-E</samp>, each <samp>-o</samp>
is understood to specify a target object file.
</p>
<p>Since <samp>-E</samp> is not implied, <samp>-MD</samp> can be used to generate
a dependency output file as a side-effect of the compilation process.
</p>
</dd>
<dt><code>-MMD</code></dt>
<dd><a name="index-MMD"></a>
<p>Like <samp>-MD</samp> except mention only user header files, not system
header files.
</p>
</dd>
<dt><code>-x c</code></dt>
<dt><code>-x c++</code></dt>
<dt><code>-x objective-c</code></dt>
<dt><code>-x assembler-with-cpp</code></dt>
<dd><a name="index-x"></a>
<p>Specify the source language: C, C++, Objective-C, or assembly.  This has
nothing to do with standards conformance or extensions; it merely
selects which base syntax to expect.  If you give none of these options,
cpp will deduce the language from the extension of the source file:
&lsquo;<samp>.c</samp>&rsquo;, &lsquo;<samp>.cc</samp>&rsquo;, &lsquo;<samp>.m</samp>&rsquo;, or &lsquo;<samp>.S</samp>&rsquo;.  Some other common
extensions for C++ and assembly are also recognized.  If cpp does not
recognize the extension, it will treat the file as C; this is the most
generic mode.
</p>
<p><em>Note:</em> Previous versions of cpp accepted a <samp>-lang</samp> option
which selected both the language and the standards conformance level.
This option has been removed, because it conflicts with the <samp>-l</samp>
option.
</p>
</dd>
<dt><code>-std=<var>standard</var></code></dt>
<dt><code>-ansi</code></dt>
<dd><a name="index-ansi"></a>
<a name="index-std_003d"></a>
<p>Specify the standard to which the code should conform.  Currently CPP
knows about C and C++ standards; others may be added in the future.
</p>
<p><var>standard</var>
may be one of:
</p><dl compact="compact">
<dt><code>c90</code></dt>
<dt><code>c89</code></dt>
<dt><code>iso9899:1990</code></dt>
<dd><p>The ISO C standard from 1990.  &lsquo;<samp>c90</samp>&rsquo; is the customary shorthand for
this version of the standard.
</p>
<p>The <samp>-ansi</samp> option is equivalent to <samp>-std=c90</samp>.
</p>
</dd>
<dt><code>iso9899:199409</code></dt>
<dd><p>The 1990 C standard, as amended in 1994.
</p>
</dd>
<dt><code>iso9899:1999</code></dt>
<dt><code>c99</code></dt>
<dt><code>iso9899:199x</code></dt>
<dt><code>c9x</code></dt>
<dd><p>The revised ISO C standard, published in December 1999.  Before
publication, this was known as C9X.
</p>
</dd>
<dt><code>iso9899:2011</code></dt>
<dt><code>c11</code></dt>
<dt><code>c1x</code></dt>
<dd><p>The revised ISO C standard, published in December 2011.  Before
publication, this was known as C1X.
</p>
</dd>
<dt><code>gnu90</code></dt>
<dt><code>gnu89</code></dt>
<dd><p>The 1990 C standard plus GNU extensions.  This is the default.
</p>
</dd>
<dt><code>gnu99</code></dt>
<dt><code>gnu9x</code></dt>
<dd><p>The 1999 C standard plus GNU extensions.
</p>
</dd>
<dt><code>gnu11</code></dt>
<dt><code>gnu1x</code></dt>
<dd><p>The 2011 C standard plus GNU extensions.
</p>
</dd>
<dt><code>c++98</code></dt>
<dd><p>The 1998 ISO C++ standard plus amendments.
</p>
</dd>
<dt><code>gnu++98</code></dt>
<dd><p>The same as <samp>-std=c++98</samp> plus GNU extensions.  This is the
default for C++ code.
</p></dd>
</dl>

</dd>
<dt><code>-I-</code></dt>
<dd><a name="index-I_002d"></a>
<p>Split the include path.  Any directories specified with <samp>-I</samp>
options before <samp>-I-</samp> are searched only for headers requested with
<code>#include&nbsp;&quot;<var>file</var>&quot;<!-- /@w --></code>; they are not searched for
<code>#include&nbsp;&lt;<var>file</var>&gt;<!-- /@w --></code>.  If additional directories are
specified with <samp>-I</samp> options after the <samp>-I-</samp>, those
directories are searched for all &lsquo;<samp>#include</samp>&rsquo; directives.
</p>
<p>In addition, <samp>-I-</samp> inhibits the use of the directory of the current
file directory as the first search directory for <code>#include&nbsp;&quot;<var>file</var>&quot;<!-- /@w --></code>.
See <a href="Search-Path.html#Search-Path">Search Path</a>.
This option has been deprecated.
</p>
</dd>
<dt><code>-nostdinc</code></dt>
<dd><a name="index-nostdinc"></a>
<p>Do not search the standard system directories for header files.
Only the directories you have specified with <samp>-I</samp> options
(and the directory of the current file, if appropriate) are searched.
</p>
</dd>
<dt><code>-nostdinc++</code></dt>
<dd><a name="index-nostdinc_002b_002b"></a>
<p>Do not search for header files in the C++-specific standard directories,
but do still search the other standard directories.  (This option is
used when building the C++ library.)
</p>
</dd>
<dt><code>-include <var>file</var></code></dt>
<dd><a name="index-include"></a>
<p>Process <var>file</var> as if <code>#include &quot;file&quot;</code> appeared as the first
line of the primary source file.  However, the first directory searched
for <var>file</var> is the preprocessor&rsquo;s working directory <em>instead of</em>
the directory containing the main source file.  If not found there, it
is searched for in the remainder of the <code>#include &quot;&hellip;&quot;</code> search
chain as normal.
</p>
<p>If multiple <samp>-include</samp> options are given, the files are included
in the order they appear on the command line.
</p>
</dd>
<dt><code>-imacros <var>file</var></code></dt>
<dd><a name="index-imacros"></a>
<p>Exactly like <samp>-include</samp>, except that any output produced by
scanning <var>file</var> is thrown away.  Macros it defines remain defined.
This allows you to acquire all the macros from a header without also
processing its declarations.
</p>
<p>All files specified by <samp>-imacros</samp> are processed before all files
specified by <samp>-include</samp>.
</p>
</dd>
<dt><code>-idirafter <var>dir</var></code></dt>
<dd><a name="index-idirafter"></a>
<p>Search <var>dir</var> for header files, but do it <em>after</em> all
directories specified with <samp>-I</samp> and the standard system directories
have been exhausted.  <var>dir</var> is treated as a system include directory.
If <var>dir</var> begins with <code>=</code>, then the <code>=</code> will be replaced
by the sysroot prefix; see <samp>--sysroot</samp> and <samp>-isysroot</samp>.
</p>
</dd>
<dt><code>-iprefix <var>prefix</var></code></dt>
<dd><a name="index-iprefix"></a>
<p>Specify <var>prefix</var> as the prefix for subsequent <samp>-iwithprefix</samp>
options.  If the prefix represents a directory, you should include the
final &lsquo;<samp>/</samp>&rsquo;.
</p>
</dd>
<dt><code>-iwithprefix <var>dir</var></code></dt>
<dt><code>-iwithprefixbefore <var>dir</var></code></dt>
<dd><a name="index-iwithprefix"></a>
<a name="index-iwithprefixbefore"></a>
<p>Append <var>dir</var> to the prefix specified previously with
<samp>-iprefix</samp>, and add the resulting directory to the include search
path.  <samp>-iwithprefixbefore</samp> puts it in the same place <samp>-I</samp>
would; <samp>-iwithprefix</samp> puts it where <samp>-idirafter</samp> would.
</p>
</dd>
<dt><code>-isysroot <var>dir</var></code></dt>
<dd><a name="index-isysroot"></a>
<p>This option is like the <samp>--sysroot</samp> option, but applies only to
header files (except for Darwin targets, where it applies to both header
files and libraries).  See the <samp>--sysroot</samp> option for more
information.
</p>
</dd>
<dt><code>-imultilib <var>dir</var></code></dt>
<dd><a name="index-imultilib"></a>
<p>Use <var>dir</var> as a subdirectory of the directory containing
target-specific C++ headers.
</p>
</dd>
<dt><code>-isystem <var>dir</var></code></dt>
<dd><a name="index-isystem"></a>
<p>Search <var>dir</var> for header files, after all directories specified by
<samp>-I</samp> but before the standard system directories.  Mark it
as a system directory, so that it gets the same special treatment as
is applied to the standard system directories.
See <a href="System-Headers.html#System-Headers">System Headers</a>.
If <var>dir</var> begins with <code>=</code>, then the <code>=</code> will be replaced
by the sysroot prefix; see <samp>--sysroot</samp> and <samp>-isysroot</samp>.
</p>
</dd>
<dt><code>-iquote <var>dir</var></code></dt>
<dd><a name="index-iquote"></a>
<p>Search <var>dir</var> only for header files requested with
<code>#include&nbsp;&quot;<var>file</var>&quot;<!-- /@w --></code>; they are not searched for
<code>#include&nbsp;&lt;<var>file</var>&gt;<!-- /@w --></code>, before all directories specified by
<samp>-I</samp> and before the standard system directories.
See <a href="Search-Path.html#Search-Path">Search Path</a>.
If <var>dir</var> begins with <code>=</code>, then the <code>=</code> will be replaced
by the sysroot prefix; see <samp>--sysroot</samp> and <samp>-isysroot</samp>.
</p>
</dd>
<dt><code>-fdirectives-only</code></dt>
<dd><a name="index-fdirectives_002donly"></a>
<p>When preprocessing, handle directives, but do not expand macros.
</p>
<p>The option&rsquo;s behavior depends on the <samp>-E</samp> and <samp>-fpreprocessed</samp>
options.
</p>
<p>With <samp>-E</samp>, preprocessing is limited to the handling of directives
such as <code>#define</code>, <code>#ifdef</code>, and <code>#error</code>.  Other
preprocessor operations, such as macro expansion and trigraph
conversion are not performed.  In addition, the <samp>-dD</samp> option is
implicitly enabled.
</p>
<p>With <samp>-fpreprocessed</samp>, predefinition of command line and most
builtin macros is disabled.  Macros such as <code>__LINE__</code>, which are
contextually dependent, are handled normally.  This enables compilation of
files previously preprocessed with <code>-E -fdirectives-only</code>.
</p>
<p>With both <samp>-E</samp> and <samp>-fpreprocessed</samp>, the rules for
<samp>-fpreprocessed</samp> take precedence.  This enables full preprocessing of
files previously preprocessed with <code>-E -fdirectives-only</code>.
</p>
</dd>
<dt><code>-fdollars-in-identifiers</code></dt>
<dd><a name="index-fdollars_002din_002didentifiers"></a>
<a name="fdollars_002din_002didentifiers"></a><p>Accept &lsquo;<samp>$</samp>&rsquo; in identifiers.
See <a href="Implementation_002ddefined-behavior.html#Identifier-characters">Identifier characters</a>.
</p>
</dd>
<dt><code>-fextended-identifiers</code></dt>
<dd><a name="index-fextended_002didentifiers"></a>
<p>Accept universal character names in identifiers.  This option is
experimental; in a future version of GCC, it will be enabled by
default for C99 and C++.
</p>
</dd>
<dt><code>-fno-canonical-system-headers</code></dt>
<dd><a name="index-fno_002dcanonical_002dsystem_002dheaders"></a>
<p>When preprocessing, do not shorten system header paths with canonicalization.
</p>
</dd>
<dt><code>-fpreprocessed</code></dt>
<dd><a name="index-fpreprocessed"></a>
<p>Indicate to the preprocessor that the input file has already been
preprocessed.  This suppresses things like macro expansion, trigraph
conversion, escaped newline splicing, and processing of most directives.
The preprocessor still recognizes and removes comments, so that you can
pass a file preprocessed with <samp>-C</samp> to the compiler without
problems.  In this mode the integrated preprocessor is little more than
a tokenizer for the front ends.
</p>
<p><samp>-fpreprocessed</samp> is implicit if the input file has one of the
extensions &lsquo;<samp>.i</samp>&rsquo;, &lsquo;<samp>.ii</samp>&rsquo; or &lsquo;<samp>.mi</samp>&rsquo;.  These are the
extensions that GCC uses for preprocessed files created by
<samp>-save-temps</samp>.
</p>
</dd>
<dt><code>-ftabstop=<var>width</var></code></dt>
<dd><a name="index-ftabstop"></a>
<p>Set the distance between tab stops.  This helps the preprocessor report
correct column numbers in warnings or errors, even if tabs appear on the
line.  If the value is less than 1 or greater than 100, the option is
ignored.  The default is 8.
</p>
</dd>
<dt><code>-fdebug-cpp</code></dt>
<dd><a name="index-fdebug_002dcpp"></a>
<p>This option is only useful for debugging GCC.  When used with
<samp>-E</samp>, dumps debugging information about location maps.  Every
token in the output is preceded by the dump of the map its location
belongs to.  The dump of the map holding the location of a token would
be:
</p><div class="smallexample">
<pre class="smallexample">{&lsquo;<samp>P</samp>&rsquo;:<samp>/file/path</samp>;&lsquo;<samp>F</samp>&rsquo;:<samp>/includer/path</samp>;&lsquo;<samp>L</samp>&rsquo;:<var>line_num</var>;&lsquo;<samp>C</samp>&rsquo;:<var>col_num</var>;&lsquo;<samp>S</samp>&rsquo;:<var>system_header_p</var>;&lsquo;<samp>M</samp>&rsquo;:<var>map_address</var>;&lsquo;<samp>E</samp>&rsquo;:<var>macro_expansion_p</var>,&lsquo;<samp>loc</samp>&rsquo;:<var>location</var>}
</pre></div>

<p>When used without <samp>-E</samp>, this option has no effect.
</p>
</dd>
<dt><code>-ftrack-macro-expansion<span class="roman">[</span>=<var>level</var><span class="roman">]</span></code></dt>
<dd><a name="index-ftrack_002dmacro_002dexpansion"></a>
<p>Track locations of tokens across macro expansions. This allows the
compiler to emit diagnostic about the current macro expansion stack
when a compilation error occurs in a macro expansion. Using this
option makes the preprocessor and the compiler consume more
memory. The <var>level</var> parameter can be used to choose the level of
precision of token location tracking thus decreasing the memory
consumption if necessary. Value &lsquo;<samp>0</samp>&rsquo; of <var>level</var> de-activates
this option just as if no <samp>-ftrack-macro-expansion</samp> was present
on the command line. Value &lsquo;<samp>1</samp>&rsquo; tracks tokens locations in a
degraded mode for the sake of minimal memory overhead. In this mode
all tokens resulting from the expansion of an argument of a
function-like macro have the same location. Value &lsquo;<samp>2</samp>&rsquo; tracks
tokens locations completely. This value is the most memory hungry.
When this option is given no argument, the default parameter value is
&lsquo;<samp>2</samp>&rsquo;.
</p>
<p>Note that -ftrack-macro-expansion=2 is activated by default.
</p>
</dd>
<dt><code>-fexec-charset=<var>charset</var></code></dt>
<dd><a name="index-fexec_002dcharset"></a>
<a name="index-character-set_002c-execution"></a>
<p>Set the execution character set, used for string and character
constants.  The default is UTF-8.  <var>charset</var> can be any encoding
supported by the system&rsquo;s <code>iconv</code> library routine.
</p>
</dd>
<dt><code>-fwide-exec-charset=<var>charset</var></code></dt>
<dd><a name="index-fwide_002dexec_002dcharset"></a>
<a name="index-character-set_002c-wide-execution"></a>
<p>Set the wide execution character set, used for wide string and
character constants.  The default is UTF-32 or UTF-16, whichever
corresponds to the width of <code>wchar_t</code>.  As with
<samp>-fexec-charset</samp>, <var>charset</var> can be any encoding supported
by the system&rsquo;s <code>iconv</code> library routine; however, you will have
problems with encodings that do not fit exactly in <code>wchar_t</code>.
</p>
</dd>
<dt><code>-finput-charset=<var>charset</var></code></dt>
<dd><a name="index-finput_002dcharset"></a>
<a name="index-character-set_002c-input"></a>
<p>Set the input character set, used for translation from the character
set of the input file to the source character set used by GCC.  If the
locale does not specify, or GCC cannot get this information from the
locale, the default is UTF-8.  This can be overridden by either the locale
or this command line option.  Currently the command line option takes
precedence if there&rsquo;s a conflict.  <var>charset</var> can be any encoding
supported by the system&rsquo;s <code>iconv</code> library routine.
</p>
</dd>
<dt><code>-fworking-directory</code></dt>
<dd><a name="index-fworking_002ddirectory"></a>
<a name="index-fno_002dworking_002ddirectory"></a>
<p>Enable generation of linemarkers in the preprocessor output that will
let the compiler know the current working directory at the time of
preprocessing.  When this option is enabled, the preprocessor will
emit, after the initial linemarker, a second linemarker with the
current working directory followed by two slashes.  GCC will use this
directory, when it&rsquo;s present in the preprocessed input, as the
directory emitted as the current working directory in some debugging
information formats.  This option is implicitly enabled if debugging
information is enabled, but this can be inhibited with the negated
form <samp>-fno-working-directory</samp>.  If the <samp>-P</samp> flag is
present in the command line, this option has no effect, since no
<code>#line</code> directives are emitted whatsoever.
</p>
</dd>
<dt><code>-fno-show-column</code></dt>
<dd><a name="index-fno_002dshow_002dcolumn"></a>
<p>Do not print column numbers in diagnostics.  This may be necessary if
diagnostics are being scanned by a program that does not understand the
column numbers, such as <code>dejagnu</code>.
</p>
</dd>
<dt><code>-A <var>predicate</var>=<var>answer</var></code></dt>
<dd><a name="index-A"></a>
<p>Make an assertion with the predicate <var>predicate</var> and answer
<var>answer</var>.  This form is preferred to the older form <samp>-A
<var>predicate</var>(<var>answer</var>)</samp>, which is still supported, because
it does not use shell special characters.
See <a href="Obsolete-Features.html#Obsolete-Features">Obsolete Features</a>.
</p>
</dd>
<dt><code>-A -<var>predicate</var>=<var>answer</var></code></dt>
<dd><p>Cancel an assertion with the predicate <var>predicate</var> and answer
<var>answer</var>.
</p>
</dd>
<dt><code>-dCHARS</code></dt>
<dd><p><var>CHARS</var> is a sequence of one or more of the following characters,
and must not be preceded by a space.  Other characters are interpreted
by the compiler proper, or reserved for future versions of GCC, and so
are silently ignored.  If you specify characters whose behavior
conflicts, the result is undefined.
</p>
<dl compact="compact">
<dt>&lsquo;<samp>M</samp>&rsquo;</dt>
<dd><a name="index-dM"></a>
<p>Instead of the normal output, generate a list of &lsquo;<samp>#define</samp>&rsquo;
directives for all the macros defined during the execution of the
preprocessor, including predefined macros.  This gives you a way of
finding out what is predefined in your version of the preprocessor.
Assuming you have no file <samp>foo.h</samp>, the command
</p>
<div class="smallexample">
<pre class="smallexample">touch foo.h; cpp -dM foo.h
</pre></div>

<p>will show all the predefined macros.
</p>
<p>If you use <samp>-dM</samp> without the <samp>-E</samp> option, <samp>-dM</samp> is
interpreted as a synonym for <samp>-fdump-rtl-mach</samp>.
See <a href="http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options">(gcc)Debugging Options</a>.
</p>
</dd>
<dt>&lsquo;<samp>D</samp>&rsquo;</dt>
<dd><a name="index-dD"></a>
<p>Like &lsquo;<samp>M</samp>&rsquo; except in two respects: it does <em>not</em> include the
predefined macros, and it outputs <em>both</em> the &lsquo;<samp>#define</samp>&rsquo;
directives and the result of preprocessing.  Both kinds of output go to
the standard output file.
</p>
</dd>
<dt>&lsquo;<samp>N</samp>&rsquo;</dt>
<dd><a name="index-dN"></a>
<p>Like &lsquo;<samp>D</samp>&rsquo;, but emit only the macro names, not their expansions.
</p>
</dd>
<dt>&lsquo;<samp>I</samp>&rsquo;</dt>
<dd><a name="index-dI"></a>
<p>Output &lsquo;<samp>#include</samp>&rsquo; directives in addition to the result of
preprocessing.
</p>
</dd>
<dt>&lsquo;<samp>U</samp>&rsquo;</dt>
<dd><a name="index-dU"></a>
<p>Like &lsquo;<samp>D</samp>&rsquo; except that only macros that are expanded, or whose
definedness is tested in preprocessor directives, are output; the
output is delayed until the use or test of the macro; and
&lsquo;<samp>#undef</samp>&rsquo; directives are also output for macros tested but
undefined at the time.
</p></dd>
</dl>

</dd>
<dt><code>-P</code></dt>
<dd><a name="index-P"></a>
<p>Inhibit generation of linemarkers in the output from the preprocessor.
This might be useful when running the preprocessor on something that is
not C code, and will be sent to a program which might be confused by the
linemarkers.
See <a href="Preprocessor-Output.html#Preprocessor-Output">Preprocessor Output</a>.
</p>
</dd>
<dt><code>-C</code></dt>
<dd><a name="index-C"></a>
<p>Do not discard comments.  All comments are passed through to the output
file, except for comments in processed directives, which are deleted
along with the directive.
</p>
<p>You should be prepared for side effects when using <samp>-C</samp>; it
causes the preprocessor to treat comments as tokens in their own right.
For example, comments appearing at the start of what would be a
directive line have the effect of turning that line into an ordinary
source line, since the first token on the line is no longer a &lsquo;<samp>#</samp>&rsquo;.
</p>
</dd>
<dt><code>-CC</code></dt>
<dd><p>Do not discard comments, including during macro expansion.  This is
like <samp>-C</samp>, except that comments contained within macros are
also passed through to the output file where the macro is expanded.
</p>
<p>In addition to the side-effects of the <samp>-C</samp> option, the
<samp>-CC</samp> option causes all C++-style comments inside a macro
to be converted to C-style comments.  This is to prevent later use
of that macro from inadvertently commenting out the remainder of
the source line.
</p>
<p>The <samp>-CC</samp> option is generally used to support lint comments.
</p>
</dd>
<dt><code>-traditional-cpp</code></dt>
<dd><a name="index-traditional_002dcpp"></a>
<p>Try to imitate the behavior of old-fashioned C preprocessors, as
opposed to ISO C preprocessors.
See <a href="Traditional-Mode.html#Traditional-Mode">Traditional Mode</a>.
</p>
</dd>
<dt><code>-trigraphs</code></dt>
<dd><a name="index-trigraphs-1"></a>
<p>Process trigraph sequences.
See <a href="Initial-processing.html#Initial-processing">Initial processing</a>.
</p>
</dd>
<dt><code>-remap</code></dt>
<dd><a name="index-remap"></a>
<p>Enable special code to work around file systems which only permit very
short file names, such as MS-DOS.
</p>
</dd>
<dt><code>--help</code></dt>
<dt><code>--target-help</code></dt>
<dd><a name="index-help"></a>
<a name="index-target_002dhelp"></a>
<p>Print text describing all the command line options instead of
preprocessing anything.
</p>
</dd>
<dt><code>-v</code></dt>
<dd><a name="index-v"></a>
<p>Verbose mode.  Print out GNU CPP&rsquo;s version number at the beginning of
execution, and report the final form of the include path.
</p>
</dd>
<dt><code>-H</code></dt>
<dd><a name="index-H"></a>
<p>Print the name of each header file used, in addition to other normal
activities.  Each name is indented to show how deep in the
&lsquo;<samp>#include</samp>&rsquo; stack it is.  Precompiled header files are also
printed, even if they are found to be invalid; an invalid precompiled
header file is printed with &lsquo;<samp>...x</samp>&rsquo; and a valid one with &lsquo;<samp>...!</samp>&rsquo; .
</p>
</dd>
<dt><code>-version</code></dt>
<dt><code>--version</code></dt>
<dd><a name="index-version"></a>
<p>Print out GNU CPP&rsquo;s version number.  With one dash, proceed to
preprocess as normal.  With two dashes, exit immediately.
</p></dd>
</dl>

<hr>
<div class="header">
<p>
Next: <a href="Environment-Variables.html#Environment-Variables" accesskey="n" rel="next">Environment Variables</a>, Previous: <a href="Implementation-Details.html#Implementation-Details" accesskey="p" rel="prev">Implementation Details</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Directives.html#Index-of-Directives" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
