You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
6.4 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1987-2018 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 6.4, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Search Path (The C Preprocessor)</title>
<meta name="description" content="Search Path (The C Preprocessor)">
<meta name="keywords" content="Search Path (The C Preprocessor)">
<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="Header-Files.html#Header-Files" rel="up" title="Header Files">
<link href="Once_002dOnly-Headers.html#Once_002dOnly-Headers" rel="next" title="Once-Only Headers">
<link href="Include-Operation.html#Include-Operation" rel="prev" title="Include Operation">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
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.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="Search-Path"></a>
<div class="header">
<p>
Next: <a href="Once_002dOnly-Headers.html#Once_002dOnly-Headers" accesskey="n" rel="next">Once-Only Headers</a>, Previous: <a href="Include-Operation.html#Include-Operation" accesskey="p" rel="prev">Include Operation</a>, Up: <a href="Header-Files.html#Header-Files" accesskey="u" rel="up">Header Files</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="Search-Path-1"></a>
<h3 class="section">2.3 Search Path</h3>
<p>By default, the preprocessor looks for header files included by the quote
form of the directive <code>#include&nbsp;&quot;<var>file</var>&quot;<!-- /@w --></code> first relative to
the directory of the current file, and then in a preconfigured list
of standard system directories.
For example, if <samp>/usr/include/sys/stat.h</samp> contains
<code>#include&nbsp;&quot;types.h&quot;<!-- /@w --></code>, GCC looks for <samp>types.h</samp> first in
<samp>/usr/include/sys</samp>, then in its usual search path.
</p>
<p>For the angle-bracket form <code>#include&nbsp;&lt;<var>file</var>&gt;<!-- /@w --></code>, the
preprocessor&rsquo;s default behavior is to look only in the standard system
directories. The exact search directory list depends on the target
system, how GCC is configured, and where it is installed. You can
find the default search directory list for your version of CPP by
invoking it with the <samp>-v</samp> option. For example,
</p>
<div class="smallexample">
<pre class="smallexample">cpp -v /dev/null -o /dev/null
</pre></div>
<p>There are a number of command-line options you can use to add
additional directories to the search path.
The most commonly-used option is <samp>-I<var>dir</var></samp>, which causes
<var>dir</var> to be searched after the current directory (for the quote
form of the directive) and ahead of the standard system directories.
You can specify multiple <samp>-I</samp> options on the command line,
in which case the directories are searched in left-to-right order.
</p>
<p>If you need separate control over the search paths for the quote and
angle-bracket forms of the &lsquo;<samp>#include</samp>&rsquo; directive, you can use the
<samp>-iquote</samp> and/or <samp>-isystem</samp> options instead of <samp>-I</samp>.
See <a href="Invocation.html#Invocation">Invocation</a>, for a detailed description of these options, as
well as others that are less generally useful.
</p>
<p>If you specify other options on the command line, such as <samp>-I</samp>,
that affect where the preprocessor searches for header files, the
directory list printed by the <samp>-v</samp> option reflects the actual
search path used by the preprocessor.
</p>
<p>Note that you can also prevent the preprocessor from searching any of
the default system header directories with the <samp>-nostdinc</samp>
option. This is useful when you are compiling an operating system
kernel or some other program that does not use the standard C library
facilities, or the standard C library itself.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Once_002dOnly-Headers.html#Once_002dOnly-Headers" accesskey="n" rel="next">Once-Only Headers</a>, Previous: <a href="Include-Operation.html#Include-Operation" accesskey="p" rel="prev">Include Operation</a>, Up: <a href="Header-Files.html#Header-Files" accesskey="u" rel="up">Header Files</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>