1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
@c Copyright (C) 1999-2016 Free Software Foundation, Inc.
@c This is part of the CPP and GCC manuals.
@c For copying conditions, see the file gcc.texi.
@c ---------------------------------------------------------------------
@c Options affecting include directory search in the preprocessor
@c ---------------------------------------------------------------------
@c If this file is included with the flag ``cppmanual'' set, it is
@c formatted for inclusion in the CPP manual; otherwise the main GCC manual.
@item -I @var{dir}
@opindex I
Add the directory @var{dir} to the list of directories to be searched
for header files.
@ifset cppmanual
@xref{Search Path}.
@end ifset
If you use more than
one @option{-I} option, the directories are scanned in left-to-right
order; the standard system directories come after.
This can be used to override a system header
file, substituting your own version, since these directories are
searched before the system header file directories. However, you should
not use this option to add directories that contain vendor-supplied
system header files (use @option{-isystem} for that).
If a standard system include directory, or a directory specified with
@option{-isystem}, is also specified with @option{-I}, the @option{-I}
option is ignored. The directory is still searched but as a
system directory at its normal position in the system include chain.
This is to ensure that GCC's procedure to fix buggy system headers and
the ordering for the @code{include_next} directive are not inadvertently changed.
If you really need to change the search order for system directories,
use the @option{-nostdinc} and/or @option{-isystem} options.
@ifset cppmanual
@xref{System Headers}.
@end ifset
If @var{dir} begins with @code{=}, then the @code{=} is replaced
by the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
@item -iquote @var{dir}
@opindex iquote
Search @var{dir} only for header files requested with
@code{@w{#include "@var{file}"}}; they are not searched for
@code{@w{#include <@var{file}>}}, before all directories specified by
@option{-I} and before the standard system directories.
@ifset cppmanual
@xref{Search Path}.
@end ifset
If @var{dir} begins with @code{=}, then the @code{=} is replaced
by the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
@item -isystem @var{dir}
@opindex isystem
Search @var{dir} for header files, after all directories specified by
@option{-I} 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.
@ifset cppmanual
@xref{System Headers}.
@end ifset
If @var{dir} begins with @code{=}, then the @code{=} is replaced
by the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
@item -I-
@opindex I-
Split the include path.
This option has been deprecated. Please use @option{-iquote} instead for
@option{-I} directories before the @option{-I-} and remove the @option{-I-}
option.
Any directories specified with @option{-I}
options before @option{-I-} are searched only for headers requested with
@code{@w{#include "@var{file}"}}; they are not searched for
@code{@w{#include <@var{file}>}}. If additional directories are
specified with @option{-I} options after the @option{-I-}, those
directories are searched for all @samp{#include} directives.
In addition, @option{-I-} inhibits the use of the directory of the current
file directory as the first search directory for @code{@w{#include
"@var{file}"}}. There is no way to override this effect of @option{-I-}.
@ifset cppmanual
@xref{Search Path}.
@end ifset
@item -idirafter @var{dir}
@opindex idirafter
Search @var{dir} for header files, but do it @emph{after} all
directories specified with @option{-I} and the standard system directories
have been exhausted. @var{dir} is treated as a system include directory.
If @var{dir} begins with @code{=}, then the @code{=} will be replaced
by the sysroot prefix; see @option{--sysroot} and @option{-isysroot}.
@item -iprefix @var{prefix}
@opindex iprefix
Specify @var{prefix} as the prefix for subsequent @option{-iwithprefix}
options. If the prefix represents a directory, you should include the
final @samp{/}.
@item -iwithprefix @var{dir}
@itemx -iwithprefixbefore @var{dir}
@opindex iwithprefix
@opindex iwithprefixbefore
Append @var{dir} to the prefix specified previously with
@option{-iprefix}, and add the resulting directory to the include search
path. @option{-iwithprefixbefore} puts it in the same place @option{-I}
would; @option{-iwithprefix} puts it where @option{-idirafter} would.
@item -isysroot @var{dir}
@opindex isysroot
This option is like the @option{--sysroot} option, but applies only to
header files (except for Darwin targets, where it applies to both header
files and libraries). See the @option{--sysroot} option for more
information.
@item -imultilib @var{dir}
@opindex imultilib
Use @var{dir} as a subdirectory of the directory containing
target-specific C++ headers.
@item -nostdinc
@opindex nostdinc
Do not search the standard system directories for header files.
Only the directories you have specified with @option{-I} options
(and the directory of the current file, if appropriate) are searched.
@item -nostdinc++
@opindex nostdinc++
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.)
|