You can not 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.4KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1987-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation. A copy of
  7. the license is included in the
  8. section entitled "GNU Free Documentation License".
  9. This manual contains no Invariant Sections. The Front-Cover Texts are
  10. (a) (see below), and the Back-Cover Texts are (b) (see below).
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>Search Path (The C Preprocessor)</title>
  21. <meta name="description" content="Search Path (The C Preprocessor)">
  22. <meta name="keywords" content="Search Path (The C Preprocessor)">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Index-of-Directives.html#Index-of-Directives" rel="index" title="Index of Directives">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Header-Files.html#Header-Files" rel="up" title="Header Files">
  30. <link href="Once_002dOnly-Headers.html#Once_002dOnly-Headers" rel="next" title="Once-Only Headers">
  31. <link href="Include-Operation.html#Include-Operation" rel="prev" title="Include Operation">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="Search-Path"></a>
  62. <div class="header">
  63. <p>
  64. 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>
  65. </div>
  66. <hr>
  67. <a name="Search-Path-1"></a>
  68. <h3 class="section">2.3 Search Path</h3>
  69. <p>By default, the preprocessor looks for header files included by the quote
  70. form of the directive <code>#include&nbsp;&quot;<var>file</var>&quot;<!-- /@w --></code> first relative to
  71. the directory of the current file, and then in a preconfigured list
  72. of standard system directories.
  73. For example, if <samp>/usr/include/sys/stat.h</samp> contains
  74. <code>#include&nbsp;&quot;types.h&quot;<!-- /@w --></code>, GCC looks for <samp>types.h</samp> first in
  75. <samp>/usr/include/sys</samp>, then in its usual search path.
  76. </p>
  77. <p>For the angle-bracket form <code>#include&nbsp;&lt;<var>file</var>&gt;<!-- /@w --></code>, the
  78. preprocessor&rsquo;s default behavior is to look only in the standard system
  79. directories. The exact search directory list depends on the target
  80. system, how GCC is configured, and where it is installed. You can
  81. find the default search directory list for your version of CPP by
  82. invoking it with the <samp>-v</samp> option. For example,
  83. </p>
  84. <div class="smallexample">
  85. <pre class="smallexample">cpp -v /dev/null -o /dev/null
  86. </pre></div>
  87. <p>There are a number of command-line options you can use to add
  88. additional directories to the search path.
  89. The most commonly-used option is <samp>-I<var>dir</var></samp>, which causes
  90. <var>dir</var> to be searched after the current directory (for the quote
  91. form of the directive) and ahead of the standard system directories.
  92. You can specify multiple <samp>-I</samp> options on the command line,
  93. in which case the directories are searched in left-to-right order.
  94. </p>
  95. <p>If you need separate control over the search paths for the quote and
  96. angle-bracket forms of the &lsquo;<samp>#include</samp>&rsquo; directive, you can use the
  97. <samp>-iquote</samp> and/or <samp>-isystem</samp> options instead of <samp>-I</samp>.
  98. See <a href="Invocation.html#Invocation">Invocation</a>, for a detailed description of these options, as
  99. well as others that are less generally useful.
  100. </p>
  101. <p>If you specify other options on the command line, such as <samp>-I</samp>,
  102. that affect where the preprocessor searches for header files, the
  103. directory list printed by the <samp>-v</samp> option reflects the actual
  104. search path used by the preprocessor.
  105. </p>
  106. <p>Note that you can also prevent the preprocessor from searching any of
  107. the default system header directories with the <samp>-nostdinc</samp>
  108. option. This is useful when you are compiling an operating system
  109. kernel or some other program that does not use the standard C library
  110. facilities, or the standard C library itself.
  111. </p>
  112. <hr>
  113. <div class="header">
  114. <p>
  115. 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>
  116. </div>
  117. </body>
  118. </html>