Search-Path.html 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  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-2017 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 5.2, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <title>The C Preprocessor: Search Path</title>
  20. <meta name="description" content="The C Preprocessor: Search Path">
  21. <meta name="keywords" content="The C Preprocessor: Search Path">
  22. <meta name="resource-type" content="document">
  23. <meta name="distribution" content="global">
  24. <meta name="Generator" content="makeinfo">
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  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.smallquotation {font-size: smaller}
  36. div.display {margin-left: 3.2em}
  37. div.example {margin-left: 3.2em}
  38. div.indentedblock {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  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.nocodebreak {white-space:nowrap}
  54. span.nolinebreak {white-space:nowrap}
  55. span.roman {font-family:serif; font-weight:normal}
  56. span.sansserif {font-family:sans-serif; font-weight:normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  62. <a name="Search-Path"></a>
  63. <div class="header">
  64. <p>
  65. 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>
  66. </div>
  67. <hr>
  68. <a name="Search-Path-1"></a>
  69. <h3 class="section">2.3 Search Path</h3>
  70. <p>By default, the preprocessor looks for header files included by the quote
  71. form of the directive <code>#include&nbsp;&quot;<var>file</var>&quot;<!-- /@w --></code> first relative to
  72. the directory of the current file, and then in a preconfigured list
  73. of standard system directories.
  74. For example, if <samp>/usr/include/sys/stat.h</samp> contains
  75. <code>#include&nbsp;&quot;types.h&quot;<!-- /@w --></code>, GCC looks for <samp>types.h</samp> first in
  76. <samp>/usr/include/sys</samp>, then in its usual search path.
  77. </p>
  78. <p>For the angle-bracket form <code>#include&nbsp;&lt;<var>file</var>&gt;<!-- /@w --></code>, the
  79. preprocessor&rsquo;s default behavior is to look only in the standard system
  80. directories. The exact search directory list depends on the target
  81. system, how GCC is configured, and where it is installed. You can
  82. find the default search directory list for your version of CPP by
  83. invoking it with the <samp>-v</samp> option. For example,
  84. </p>
  85. <div class="smallexample">
  86. <pre class="smallexample">cpp -v /dev/null -o /dev/null
  87. </pre></div>
  88. <p>There are a number of command-line options you can use to add
  89. additional directories to the search path.
  90. The most commonly-used option is <samp>-I<var>dir</var></samp>, which causes
  91. <var>dir</var> to be searched after the current directory (for the quote
  92. form of the directive) and ahead of the standard system directories.
  93. You can specify multiple <samp>-I</samp> options on the command line,
  94. in which case the directories are searched in left-to-right order.
  95. </p>
  96. <p>If you need separate control over the search paths for the quote and
  97. angle-bracket forms of the &lsquo;<samp>#include</samp>&rsquo; directive, you can use the
  98. <samp>-iquote</samp> and/or <samp>-isystem</samp> options instead of <samp>-I</samp>.
  99. See <a href="Invocation.html#Invocation">Invocation</a>, for a detailed description of these options, as
  100. well as others that are less generally useful.
  101. </p>
  102. <p>If you specify other options on the command line, such as <samp>-I</samp>,
  103. that affect where the preprocessor searches for header files, the
  104. directory list printed by the <samp>-v</samp> option reflects the actual
  105. search path used by the preprocessor.
  106. </p>
  107. <p>Note that you can also prevent the preprocessor from searching any of
  108. the default system header directories with the <samp>-nostdinc</samp>
  109. option. This is useful when you are compiling an operating system
  110. kernel or some other program that does not use the standard C library
  111. facilities, or the standard C library itself.
  112. </p>
  113. <hr>
  114. <div class="header">
  115. <p>
  116. 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>
  117. </div>
  118. </body>
  119. </html>