arm-linux-cpp.1
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:37k
- ." Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
- ."
- ." Standard preamble:
- ." ========================================================================
- .de Sh " Subsection heading
- .br
- .if t .Sp
- .ne 5
- .PP
- fB\$1fR
- .PP
- ..
- .de Sp " Vertical space (when we can't use .PP)
- .if t .sp .5v
- .if n .sp
- ..
- .de Vb " Begin verbatim text
- .ft CW
- .nf
- .ne \$1
- ..
- .de Ve " End verbatim text
- .ft R
- .fi
- ..
- ." Set up some character translations and predefined strings. *(-- will
- ." give an unbreakable dash, *(PI will give pi, *(L" will give a left
- ." double quote, and *(R" will give a right double quote. | will give a
- ." real vertical bar. *(C+ will give a nicer C++. Capital omega is used to
- ." do unbreakable dashes and therefore won't be available. *(C` and *(C'
- ." expand to `' in nroff, nothing in troff, for use with C<>.
- .tr (*W-|(bv*(Tr
- .ds C+ Cv'-.1v'h'-1p's-2+h'-1p'+s0v'.1v'h'-1p'
- .ie n {
- . ds -- (*W-
- . ds PI pi
- . if (n(.H=4u)&(1m=24u) .ds -- (*Wh'-12u'(*Wh'-12u'-" diablo 10 pitch
- . if (n(.H=4u)&(1m=20u) .ds -- (*Wh'-12u'(*Wh'-8u'-" diablo 12 pitch
- . ds L" ""
- . ds R" ""
- . ds C` ""
- . ds C' ""
- 'br}
- .el{
- . ds -- |(em|
- . ds PI (*p
- . ds L" ``
- . ds R" ''
- 'br}
- ."
- ." If the F register is turned on, we'll generate index entries on stderr for
- ." titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
- ." entries marked with X<> in POD. Of course, you'll have to process the
- ." output yourself in some meaningful fashion.
- .if nF {
- . de IX
- . tm Index:\$1t\n%t"\$2"
- ..
- . nr % 0
- . rr F
- .}
- ."
- ." For nroff, turn off justification. Always turn off hyphenation; it makes
- ." way too many mistakes in technical documents.
- .hy 0
- .if n .na
- ."
- ." Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
- ." Fear. Run. Save yourself. No user-serviceable parts.
- . " fudge factors for nroff and troff
- .if n {
- . ds #H 0
- . ds #V .8m
- . ds #F .3m
- . ds #[ f1
- . ds #] fP
- .}
- .if t {
- . ds #H ((1u-(\\n(.fu%2u))*.13m)
- . ds #V .6m
- . ds #F 0
- . ds #[ &
- . ds #] &
- .}
- . " simple accents for nroff and troff
- .if n {
- . ds ' &
- . ds ` &
- . ds ^ &
- . ds , &
- . ds ~ ~
- . ds /
- .}
- .if t {
- . ds ' \k:h'-(\n(.wu*8/10-*(#H)''h"|\n:u"
- . ds ` \k:h'-(\n(.wu*8/10-*(#H)'`h'|\n:u'
- . ds ^ \k:h'-(\n(.wu*10/11-*(#H)'^h'|\n:u'
- . ds , \k:h'-(\n(.wu*8/10)',h'|\n:u'
- . ds ~ \k:h'-(\n(.wu-*(#H-.1m)'~h'|\n:u'
- . ds / \k:h'-(\n(.wu*8/10-*(#H)'z(slh'|\n:u'
- .}
- . " troff and (daisy-wheel) nroff accents
- .ds : \k:h'-(\n(.wu*8/10-*(#H+.1m+*(#F)'v'-*(#V'z.h'.2m+*(#F'.h'|\n:u'v'*(#V'
- .ds 8 h'*(#H'(*bh'-*(#H'
- .ds o \k:h'-(\n(.wu+w'(de'u-*(#H)/2u'v'-.3n'*(#[z(dev'.3n'h'|\n:u'*(#]
- .ds d- h'*(#H'(pdh'-w'~'u'v'-.25m'f2(hyfPv'.25m'h'-*(#H'
- .ds D- D\k:h'-w'D'u'v'-.11m'z(hyv'.11m'h'|\n:u'
- .ds th *(#[v'.3m's+1Is-1v'-.3m'h'-(w'I'u*2/3)'s-1os+1*(#]
- .ds Th *(#[s+2Is-2h'-w'I'u*3/5'v'-.3m'ov'.3m'*(#]
- .ds ae ah'-(w'a'u*4/10)'e
- .ds Ae Ah'-(w'A'u*4/10)'E
- . " corrections for vroff
- .if v .ds ~ \k:h'-(\n(.wu*9/10-*(#H)'s-2u~ds+2h'|\n:u'
- .if v .ds ^ \k:h'-(\n(.wu*10/11-*(#H)'v'-.4m'^v'.4m'h'|\n:u'
- . " for low resolution devices (crt and lpr)
- .if n(.H>23 .if n(.V>19
- {
- . ds : e
- . ds 8 ss
- . ds o a
- . ds d- dh'-1'(ga
- . ds D- Dh'-1'(hy
- . ds th o'bp'
- . ds Th o'LP'
- . ds ae ae
- . ds Ae AE
- .}
- .rm #[ #] #H #V #F C
- ." ========================================================================
- ."
- .IX Title "CPP 1"
- .TH CPP 1 "2005-05-19" "gcc-3.4.4" "GNU"
- .SH "NAME"
- cpp - The C Preprocessor
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- cpp [fB-DfRfImacrofR[=fIdefnfR]...] [fB-UfRfImacrofR]
- [fB-IfRfIdirfR...] [fB-WfRfIwarnfR...]
- [fB-MfR|fB-MMfR] [fB-MGfR] [fB-MFfR fIfilenamefR]
- [fB-MPfR] [fB-MQfR fItargetfR...]
- [fB-MTfR fItargetfR...]
- [fB-PfR] [fB-fno-working-directoryfR]
- [fB-xfR fIlanguagefR] [fB-std=fRfIstandardfR]
- fIinfilefR fIoutfilefR
- .PP
- Only the most useful options are listed here; see below for the remainder.
- .SH "DESCRIPTION"
- .IX Header "DESCRIPTION"
- The C preprocessor, often known as fIcppfR, is a fImacro processorfR
- that is used automatically by the C compiler to transform your program
- before compilation. It is called a macro processor because it allows
- you to define fImacrosfR, which are brief abbreviations for longer
- constructs.
- .PP
- The C preprocessor is intended to be used only with C, *(C+, and
- Objective-C source code. In the past, it has been abused as a general
- text processor. It will choke on input which does not obey C's lexical
- rules. For example, apostrophes will be interpreted as the beginning of
- character constants, and cause errors. Also, you cannot rely on it
- preserving characteristics of the input which are not significant to
- C-family languages. If a Makefile is preprocessed, all the hard tabs
- will be removed, and the Makefile will not work.
- .PP
- Having said that, you can often get away with using cpp on things which
- are not C. Other Algol-ish programming languages are often safe
- (Pascal, Ada, etc.) So is assembly, with caution. fB-traditional-cppfR
- mode preserves more white space, and is otherwise more permissive. Many
- of the problems can be avoided by writing C or *(C+ style comments
- instead of native language comments, and keeping macros simple.
- .PP
- Wherever possible, you should use a preprocessor geared to the language
- you are writing in. Modern versions of the s-1GNUs0 assembler have macro
- facilities. Most high level programming languages have their own
- conditional compilation and inclusion mechanism. If all else fails,
- try a true general text processor, such as s-1GNUs0 M4.
- .PP
- C preprocessors vary in some details. This manual discusses the s-1GNUs0 C
- preprocessor, which provides a small superset of the features of s-1ISOs0
- Standard C. In its default mode, the s-1GNUs0 C preprocessor does not do a
- few things required by the standard. These are features which are
- rarely, if ever, used, and may cause surprising changes to the meaning
- of a program which does not expect them. To get strict s-1ISOs0 Standard C,
- you should use the fB-std=c89fR or fB-std=c99fR options, depending
- on which version of the standard you want. To get all the mandatory
- diagnostics, you must also use fB-pedanticfR.
- .PP
- This manual describes the behavior of the s-1ISOs0 preprocessor. To
- minimize gratuitous differences, where the s-1ISOs0 preprocessor's
- behavior does not conflict with traditional semantics, the
- traditional preprocessor should behave the same way. The various
- differences that do exist are detailed in the section fBTraditional
- ModefR.
- .PP
- For clarity, unless noted otherwise, references to fBs-1CPPs0fR in this
- manual refer to s-1GNUs0 s-1CPPs0.
- .SH "OPTIONS"
- .IX Header "OPTIONS"
- The C preprocessor expects two file names as arguments, fIinfilefR and
- &fIoutfilefR. The preprocessor reads fIinfilefR together with any
- other files it specifies with fB#includefR. All the output generated
- by the combined input files is written in fIoutfilefR.
- .PP
- Either fIinfilefR or fIoutfilefR may be fB-fR, which as
- &fIinfilefR means to read from standard input and as fIoutfilefR
- means to write to standard output. Also, if either file is omitted, it
- means the same as if fB-fR had been specified for that file.
- .PP
- Unless otherwise noted, or the option ends in fB=fR, all options
- which take an argument may have that argument appear either immediately
- after the option, or with a space between option and argument:
- &fB-IfoofR and fB-I foofR have the same effect.
- .PP
- Many options have multi-letter names; therefore multiple single-letter
- options may fInotfR be grouped: fB-dMfR is very different from
- &fB-d -MfR.
- .IP "fB-DfR fInamefR" 4
- .IX Item "-D name"
- Predefine fInamefR as a macro, with definition f(CW1fR.
- .IP "fB-DfR fInamefRfB=fRfIdefinitionfR" 4
- .IX Item "-D name=definition"
- Predefine fInamefR as a macro, with definition fIdefinitionfR.
- The contents of fIdefinitionfR are tokenized and processed as if
- they appeared during translation phase three in a fB#definefR
- directive. In particular, the definition will be truncated by
- embedded newline characters.
- .Sp
- If you are invoking the preprocessor from a shell or shell-like
- program you may need to use the shell's quoting syntax to protect
- characters such as spaces that have a meaning in the shell syntax.
- .Sp
- 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 fBshfR and fBcshfR,
- &fB-D'fRfInamefRfB(fRfIargs...fRfB)=fRfIdefinitionfRfB'fR works.
- .Sp
- &fB-DfR and fB-UfR options are processed in the order they
- are given on the command line. All fB-imacrosfR fIfilefR and
- &fB-includefR fIfilefR options are processed after all
- &fB-DfR and fB-UfR options.
- .IP "fB-UfR fInamefR" 4
- .IX Item "-U name"
- Cancel any previous definition of fInamefR, either built in or
- provided with a fB-DfR option.
- .IP "fB-undeffR" 4
- .IX Item "-undef"
- Do not predefine any system-specific or GCC-specific macros. The
- standard predefined macros remain defined.
- .IP "fB-IfR fIdirfR" 4
- .IX Item "-I dir"
- Add the directory fIdirfR to the list of directories to be searched
- for header files.
- .Sp
- Directories named by fB-IfR are searched before the standard
- system include directories. If the directory fIdirfR 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
- &.
- .IP "fB-ofR fIfilefR" 4
- .IX Item "-o file"
- Write output to fIfilefR. This is the same as specifying fIfilefR
- as the second non-option argument to fBcppfR. fBgccfR has a
- different interpretation of a second non-option argument, so you must
- use fB-ofR to specify the output file.
- .IP "fB-WallfR" 4
- .IX Item "-Wall"
- Turns on all optional warnings which are desirable for normal code.
- At present this is fB-WcommentfR, fB-WtrigraphsfR,
- &fB-WmulticharfR and a warning about integer promotion causing a
- change of sign in f(CW*(C`#if*(C'fR expressions. Note that many of the
- preprocessor's warnings are on by default and have no options to
- control them.
- .IP "fB-WcommentfR" 4
- .IX Item "-Wcomment"
- .PD 0
- .IP "fB-WcommentsfR" 4
- .IX Item "-Wcomments"
- .PD
- Warn whenever a comment-start sequence fB/*fR appears in a fB/*fR
- comment, or whenever a backslash-newline appears in a fB//fR comment.
- (Both forms have the same effect.)
- .IP "fB-WtrigraphsfR" 4
- .IX Item "-Wtrigraphs"
- @anchor{Wtrigraphs}
- Most trigraphs in comments cannot affect the meaning of the program.
- However, a trigraph that would form an escaped newline (fB??/fR 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.
- .Sp
- This option is implied by fB-WallfR. If fB-WallfR is not
- given, this option is still enabled unless trigraphs are enabled. To
- get trigraph conversion without warnings, but get the other
- &fB-WallfR warnings, use fB-trigraphs -Wall -Wno-trigraphsfR.
- .IP "fB-WtraditionalfR" 4
- .IX Item "-Wtraditional"
- Warn about certain constructs that behave differently in traditional and
- &s-1ISOs0 C. Also warn about s-1ISOs0 C constructs that have no traditional C
- equivalent, and problematic constructs which should be avoided.
- .IP "fB-WimportfR" 4
- .IX Item "-Wimport"
- Warn the first time fB#importfR is used.
- .IP "fB-WundeffR" 4
- .IX Item "-Wundef"
- Warn whenever an identifier which is not a macro is encountered in an
- &fB#iffR directive, outside of fBdefinedfR. Such identifiers are
- replaced with zero.
- .IP "fB-Wunused-macrosfR" 4
- .IX Item "-Wunused-macros"
- Warn about macros defined in the main file that are unused. A macro
- is fIusedfR 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.
- .Sp
- Built-in macros, macros defined on the command line, and macros
- defined in include files are not warned about.
- .Sp
- &fBNote:fR If a macro is actually used, but only used in skipped
- conditional blocks, then s-1CPPs0 will report it as unused. To avoid the
- warning in such a case, you might improve the scope of the macro's
- definition by, for example, moving it into the first skipped block.
- Alternatively, you could provide a dummy use with something like:
- .Sp
- .Vb 2
- & #if defined the_macro_causing_the_warning
- & #endif
- .Ve
- .IP "fB-Wendif-labelsfR" 4
- .IX Item "-Wendif-labels"
- Warn whenever an fB#elsefR or an fB#endiffR are followed by text.
- This usually happens in code of the form
- .Sp
- .Vb 5
- & #if FOO
- & ...
- & #else FOO
- & ...
- & #endif FOO
- .Ve
- .Sp
- The second and third f(CW*(C`FOO*(C'fR should be in comments, but often are not
- in older programs. This warning is on by default.
- .IP "fB-WerrorfR" 4
- .IX Item "-Werror"
- Make all warnings into hard errors. Source code which triggers warnings
- will be rejected.
- .IP "fB-Wsystem-headersfR" 4
- .IX Item "-Wsystem-headers"
- 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.
- .IP "fB-wfR" 4
- .IX Item "-w"
- Suppress all warnings, including those which s-1GNUs0 s-1CPPs0 issues by default.
- .IP "fB-pedanticfR" 4
- .IX Item "-pedantic"
- 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.
- .IP "fB-pedantic-errorsfR" 4
- .IX Item "-pedantic-errors"
- Issue all the mandatory diagnostics, and make all mandatory diagnostics
- into errors. This includes mandatory diagnostics that s-1GCCs0 issues
- without fB-pedanticfR but treats as warnings.
- .IP "fB-MfR" 4
- .IX Item "-M"
- Instead of outputting the result of preprocessing, output a rule
- suitable for fBmakefR describing the dependencies of the main
- source file. The preprocessor outputs one fBmakefR rule containing
- the object file name for that source file, a colon, and the names of all
- the included files, including those coming from fB-includefR or
- &fB-imacrosfR command line options.
- .Sp
- Unless specified explicitly (with fB-MTfR or fB-MQfR), the
- object file name consists of the basename of the source file with any
- suffix replaced with object file suffix. If there are many included
- files then the rule is split into several lines using fBefR-newline.
- The rule has no commands.
- .Sp
- This option does not suppress the preprocessor's debug output, such as
- &fB-dMfR. To avoid mixing such debug output with the dependency
- rules you should explicitly specify the dependency output file with
- &fB-MFfR, or use an environment variable like
- &fBs-1DEPENDENCIES_OUTPUTs0fR. Debug output
- will still be sent to the regular output stream as normal.
- .Sp
- Passing fB-MfR to the driver implies fB-EfR, and suppresses
- warnings with an implicit fB-wfR.
- .IP "fB-MMfR" 4
- .IX Item "-MM"
- Like fB-MfR 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.
- .Sp
- This implies that the choice of angle brackets or double quotes in an
- &fB#includefR directive does not in itself determine whether that
- header will appear in fB-MMfR dependency output. This is a
- slight change in semantics from s-1GCCs0 versions 3.0 and earlier.
- .Sp
- @anchor{dashMF}
- .IP "fB-MFfR fIfilefR" 4
- .IX Item "-MF file"
- When used with fB-MfR or fB-MMfR, specifies a
- file to write the dependencies to. If no fB-MFfR switch is given
- the preprocessor sends the rules to the same place it would have sent
- preprocessed output.
- .Sp
- When used with the driver options fB-MDfR or fB-MMDfR,
- &fB-MFfR overrides the default dependency output file.
- .IP "fB-MGfR" 4
- .IX Item "-MG"
- In conjunction with an option such as fB-MfR requesting
- dependency generation, fB-MGfR 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
- &f(CW*(C`#include*(C'fR directive without prepending any path. fB-MGfR
- also suppresses preprocessed output, as a missing header file renders
- this useless.
- .Sp
- This feature is used in automatic updating of makefiles.
- .IP "fB-MPfR" 4
- .IX Item "-MP"
- This option instructs s-1CPPs0 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 fBmakefR gives if you remove header
- files without updating the fIMakefilefR to match.
- .Sp
- This is typical output:
- .Sp
- .Vb 1
- & test.o: test.c test.h
- .Ve
- .Sp
- .Vb 1
- & test.h:
- .Ve
- .IP "fB-MTfR fItargetfR" 4
- .IX Item "-MT target"
- Change the target of the rule emitted by dependency generation. By
- default s-1CPPs0 takes the name of the main input file, including any path,
- deletes any file suffix such as fB.cfR, and appends the platform's
- usual object suffix. The result is the target.
- .Sp
- An fB-MTfR 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 fB-MTfR, or use multiple fB-MTfR options.
- .Sp
- For example, fB-MT '$(objpfx)foo.o'fR might give
- .Sp
- .Vb 1
- & $(objpfx)foo.o: foo.c
- .Ve
- .IP "fB-MQfR fItargetfR" 4
- .IX Item "-MQ target"
- Same as fB-MTfR, but it quotes any characters which are special to
- Make. fB-MQ '$(objpfx)foo.o'fR gives
- .Sp
- .Vb 1
- & $$(objpfx)foo.o: foo.c
- .Ve
- .Sp
- The default target is automatically quoted, as if it were given with
- &fB-MQfR.
- .IP "fB-MDfR" 4
- .IX Item "-MD"
- &fB-MDfR is equivalent to fB-M -MFfR fIfilefR, except that
- &fB-EfR is not implied. The driver determines fIfilefR based on
- whether an fB-ofR option is given. If it is, the driver uses its
- argument but with a suffix of fI.dfR, otherwise it take the
- basename of the input file and applies a fI.dfR suffix.
- .Sp
- If fB-MDfR is used in conjunction with fB-EfR, any
- &fB-ofR switch is understood to specify the dependency output file
- (but f(CW@pxreffR{dashMF,,-MF}), but if used without fB-EfR, each fB-ofR
- is understood to specify a target object file.
- .Sp
- Since fB-EfR is not implied, fB-MDfR can be used to generate
- a dependency output file as a side-effect of the compilation process.
- .IP "fB-MMDfR" 4
- .IX Item "-MMD"
- Like fB-MDfR except mention only user header files, not system
- &-header files.
- .IP "fB-x cfR" 4
- .IX Item "-x c"
- .PD 0
- .IP "fB-x c++fR" 4
- .IX Item "-x c++"
- .IP "fB-x objective-cfR" 4
- .IX Item "-x objective-c"
- .IP "fB-x assembler-with-cppfR" 4
- .IX Item "-x assembler-with-cpp"
- .PD
- 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:
- &fB.cfR, fB.ccfR, fB.mfR, or fB.SfR. 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.
- .Sp
- &fBNote:fR Previous versions of cpp accepted a fB-langfR option
- which selected both the language and the standards conformance level.
- This option has been removed, because it conflicts with the fB-lfR
- option.
- .IP "fB-std=fRfIstandardfR" 4
- .IX Item "-std=standard"
- .PD 0
- .IP "fB-ansifR" 4
- .IX Item "-ansi"
- .PD
- Specify the standard to which the code should conform. Currently s-1CPPs0
- knows about C and *(C+ standards; others may be added in the future.
- .Sp
- &fIstandardfR
- may be one of:
- .RS 4
- .ie n .IP """iso9899:1990""" 4
- .el .IP "f(CWiso9899:1990fR" 4
- .IX Item "iso9899:1990"
- .PD 0
- .ie n .IP """c89""" 4
- .el .IP "f(CWc89fR" 4
- .IX Item "c89"
- .PD
- The s-1ISOs0 C standard from 1990. fBc89fR is the customary shorthand for
- this version of the standard.
- .Sp
- The fB-ansifR option is equivalent to fB-std=c89fR.
- .ie n .IP """iso9899:199409""" 4
- .el .IP "f(CWiso9899:199409fR" 4
- .IX Item "iso9899:199409"
- The 1990 C standard, as amended in 1994.
- .ie n .IP """iso9899:1999""" 4
- .el .IP "f(CWiso9899:1999fR" 4
- .IX Item "iso9899:1999"
- .PD 0
- .ie n .IP """c99""" 4
- .el .IP "f(CWc99fR" 4
- .IX Item "c99"
- .ie n .IP """iso9899:199x""" 4
- .el .IP "f(CWiso9899:199xfR" 4
- .IX Item "iso9899:199x"
- .ie n .IP """c9x""" 4
- .el .IP "f(CWc9xfR" 4
- .IX Item "c9x"
- .PD
- The revised s-1ISOs0 C standard, published in December 1999. Before
- publication, this was known as C9X.
- .ie n .IP """gnu89""" 4
- .el .IP "f(CWgnu89fR" 4
- .IX Item "gnu89"
- The 1990 C standard plus s-1GNUs0 extensions. This is the default.
- .ie n .IP """gnu99""" 4
- .el .IP "f(CWgnu99fR" 4
- .IX Item "gnu99"
- .PD 0
- .ie n .IP """gnu9x""" 4
- .el .IP "f(CWgnu9xfR" 4
- .IX Item "gnu9x"
- .PD
- The 1999 C standard plus s-1GNUs0 extensions.
- .ie n .IP """c++98""" 4
- .el .IP "f(CWc++98fR" 4
- .IX Item "c++98"
- The 1998 s-1ISOs0 *(C+ standard plus amendments.
- .ie n .IP """gnu++98""" 4
- .el .IP "f(CWgnu++98fR" 4
- .IX Item "gnu++98"
- The same as fB-std=c++98fR plus s-1GNUs0 extensions. This is the
- default for *(C+ code.
- .RE
- .RS 4
- .RE
- .IP "fB-I-fR" 4
- .IX Item "-I-"
- Split the include path. Any directories specified with fB-IfR
- options before fB-I-fR are searched only for headers requested with
- &f(CW*(C`#include "f(CIfilef(CW"*(C'fR; they are not searched for
- &f(CW*(C`#include <f(CIfilef(CW>*(C'fR. If additional directories are
- specified with fB-IfR options after the fB-I-fR, those
- directories are searched for all fB#includefR directives.
- .Sp
- In addition, fB-I-fR inhibits the use of the directory of the current
- file directory as the first search directory for f(CW*(C`#include "f(CIfilef(CW"*(C'fR.
- .IP "fB-nostdincfR" 4
- .IX Item "-nostdinc"
- Do not search the standard system directories for header files.
- Only the directories you have specified with fB-IfR options
- (and the directory of the current file, if appropriate) are searched.
- .IP "fB-nostdinc++fR" 4
- .IX Item "-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.)
- .IP "fB-includefR fIfilefR" 4
- .IX Item "-include file"
- Process fIfilefR as if f(CW*(C`#include "file"*(C'fR appeared as the first
- line of the primary source file. However, the first directory searched
- for fIfilefR is the preprocessor's working directory fIinstead offR
- the directory containing the main source file. If not found there, it
- is searched for in the remainder of the f(CW*(C`#include "..."*(C'fR search
- chain as normal.
- .Sp
- If multiple fB-includefR options are given, the files are included
- in the order they appear on the command line.
- .IP "fB-imacrosfR fIfilefR" 4
- .IX Item "-imacros file"
- Exactly like fB-includefR, except that any output produced by
- scanning fIfilefR is thrown away. Macros it defines remain defined.
- This allows you to acquire all the macros from a header without also
- processing its declarations.
- .Sp
- All files specified by fB-imacrosfR are processed before all files
- specified by fB-includefR.
- .IP "fB-idirafterfR fIdirfR" 4
- .IX Item "-idirafter dir"
- Search fIdirfR for header files, but do it fIafterfR all
- directories specified with fB-IfR and the standard system directories
- have been exhausted. fIdirfR is treated as a system include directory.
- .IP "fB-iprefixfR fIprefixfR" 4
- .IX Item "-iprefix prefix"
- Specify fIprefixfR as the prefix for subsequent fB-iwithprefixfR
- options. If the prefix represents a directory, you should include the
- final fB/fR.
- .IP "fB-iwithprefixfR fIdirfR" 4
- .IX Item "-iwithprefix dir"
- .PD 0
- .IP "fB-iwithprefixbeforefR fIdirfR" 4
- .IX Item "-iwithprefixbefore dir"
- .PD
- Append fIdirfR to the prefix specified previously with
- &fB-iprefixfR, and add the resulting directory to the include search
- path. fB-iwithprefixbeforefR puts it in the same place fB-IfR
- would; fB-iwithprefixfR puts it where fB-idirafterfR would.
- .IP "fB-isystemfR fIdirfR" 4
- .IX Item "-isystem dir"
- Search fIdirfR for header files, after all directories specified by
- &fB-IfR 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.
- .IP "fB-fdollars-in-identifiersfR" 4
- .IX Item "-fdollars-in-identifiers"
- @anchor{fdollars-in-identifiers}
- Accept fB$fR in identifiers.
- .IP "fB-fpreprocessedfR" 4
- .IX Item "-fpreprocessed"
- 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 fB-CfR to the compiler without
- problems. In this mode the integrated preprocessor is little more than
- a tokenizer for the front ends.
- .Sp
- &fB-fpreprocessedfR is implicit if the input file has one of the
- extensions fB.ifR, fB.iifR or fB.mifR. These are the
- extensions that s-1GCCs0 uses for preprocessed files created by
- &fB-save-tempsfR.
- .IP "fB-ftabstop=fRfIwidthfR" 4
- .IX Item "-ftabstop=width"
- 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.
- .IP "fB-fexec-charset=fRfIcharsetfR" 4
- .IX Item "-fexec-charset=charset"
- Set the execution character set, used for string and character
- constants. The default is s-1UTF-8s0. fIcharsetfR can be any encoding
- supported by the system's f(CW*(C`iconv*(C'fR library routine.
- .IP "fB-fwide-exec-charset=fRfIcharsetfR" 4
- .IX Item "-fwide-exec-charset=charset"
- Set the wide execution character set, used for wide string and
- character constants. The default is s-1UTF-32s0 or s-1UTF-16s0, whichever
- corresponds to the width of f(CW*(C`wchar_t*(C'fR. As with
- &fB-ftarget-charsetfR, fIcharsetfR can be any encoding supported
- by the system's f(CW*(C`iconv*(C'fR library routine; however, you will have
- problems with encodings that do not fit exactly in f(CW*(C`wchar_t*(C'fR.
- .IP "fB-finput-charset=fRfIcharsetfR" 4
- .IX Item "-finput-charset=charset"
- Set the input character set, used for translation from the character
- set of the input file to the source character set used by s-1GCCs0. If the
- locale does not specify, or s-1GCCs0 cannot get this information from the
- locale, the default is s-1UTF-8s0. This can be overridden by either the locale
- or this command line option. Currently the command line option takes
- precedence if there's a conflict. fIcharsetfR can be any encoding
- supported by the system's f(CW*(C`iconv*(C'fR library routine.
- .IP "fB-fworking-directoryfR" 4
- .IX Item "-fworking-directory"
- 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. s-1GCCs0 will use this
- directory, when it'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 fB-fno-working-directoryfR. If the fB-PfR flag is
- present in the command line, this option has no effect, since no
- &f(CW*(C`#line*(C'fR directives are emitted whatsoever.
- .IP "fB-fno-show-columnfR" 4
- .IX Item "-fno-show-column"
- 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 fBdejagnufR.
- .IP "fB-AfR fIpredicatefRfB=fRfIanswerfR" 4
- .IX Item "-A predicate=answer"
- Make an assertion with the predicate fIpredicatefR and answer
- &fIanswerfR. This form is preferred to the older form fB-AfR
- &fIpredicatefRfB(fRfIanswerfRfB)fR, which is still supported, because
- it does not use shell special characters.
- .IP "fB-A -fRfIpredicatefRfB=fRfIanswerfR" 4
- .IX Item "-A -predicate=answer"
- Cancel an assertion with the predicate fIpredicatefR and answer
- &fIanswerfR.
- .IP "fB-dCHARSfR" 4
- .IX Item "-dCHARS"
- &fIs-1CHARSs0fR 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 s-1GCCs0, and so
- are silently ignored. If you specify characters whose behavior
- conflicts, the result is undefined.
- .RS 4
- .IP "fBMfR" 4
- .IX Item "M"
- Instead of the normal output, generate a list of fB#definefR
- 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 fIfoo.hfR, the command
- .Sp
- .Vb 1
- & touch foo.h; cpp -dM foo.h
- .Ve
- .Sp
- will show all the predefined macros.
- .IP "fBDfR" 4
- .IX Item "D"
- Like fBMfR except in two respects: it does fInotfR include the
- predefined macros, and it outputs fIbothfR the fB#definefR
- directives and the result of preprocessing. Both kinds of output go to
- the standard output file.
- .IP "fBNfR" 4
- .IX Item "N"
- Like fBDfR, but emit only the macro names, not their expansions.
- .IP "fBIfR" 4
- .IX Item "I"
- Output fB#includefR directives in addition to the result of
- preprocessing.
- .RE
- .RS 4
- .RE
- .IP "fB-PfR" 4
- .IX Item "-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.
- .IP "fB-CfR" 4
- .IX Item "-C"
- 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.
- .Sp
- You should be prepared for side effects when using fB-CfR; 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 fB#fR.
- .IP "fB-CCfR" 4
- .IX Item "-CC"
- Do not discard comments, including during macro expansion. This is
- like fB-CfR, except that comments contained within macros are
- also passed through to the output file where the macro is expanded.
- .Sp
- In addition to the side-effects of the fB-CfR option, the
- &fB-CCfR 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.
- .Sp
- The fB-CCfR option is generally used to support lint comments.
- .IP "fB-traditional-cppfR" 4
- .IX Item "-traditional-cpp"
- Try to imitate the behavior of old-fashioned C preprocessors, as
- opposed to s-1ISOs0 C preprocessors.
- .IP "fB-trigraphsfR" 4
- .IX Item "-trigraphs"
- Process trigraph sequences.
- .IP "fB-remapfR" 4
- .IX Item "-remap"
- Enable special code to work around file systems which only permit very
- short file names, such as s-1MS-DOSs0.
- .IP "fB--helpfR" 4
- .IX Item "--help"
- .PD 0
- .IP "fB--target-helpfR" 4
- .IX Item "--target-help"
- .PD
- Print text describing all the command line options instead of
- preprocessing anything.
- .IP "fB-vfR" 4
- .IX Item "-v"
- Verbose mode. Print out s-1GNUs0 s-1CPPs0's version number at the beginning of
- execution, and report the final form of the include path.
- .IP "fB-HfR" 4
- .IX Item "-H"
- Print the name of each header file used, in addition to other normal
- activities. Each name is indented to show how deep in the
- &fB#includefR 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 fB...xfR and a valid one with fB...!fR .
- .IP "fB-versionfR" 4
- .IX Item "-version"
- .PD 0
- .IP "fB--versionfR" 4
- .IX Item "--version"
- .PD
- Print out s-1GNUs0 s-1CPPs0's version number. With one dash, proceed to
- preprocess as normal. With two dashes, exit immediately.
- .SH "ENVIRONMENT"
- .IX Header "ENVIRONMENT"
- This section describes the environment variables that affect how s-1CPPs0
- operates. You can use them to specify directories or prefixes to use
- when searching for include files, or to control dependency output.
- .PP
- Note that you can also specify places to search using options such as
- &fB-IfR, and control dependency output with options like
- &fB-MfR. These take precedence over
- environment variables, which in turn take precedence over the
- configuration of s-1GCCs0.
- .IP "fBs-1CPATHs0fR" 4
- .IX Item "CPATH"
- .PD 0
- .IP "fBC_INCLUDE_PATHfR" 4
- .IX Item "C_INCLUDE_PATH"
- .IP "fBs-1CPLUS_INCLUDE_PATHs0fR" 4
- .IX Item "CPLUS_INCLUDE_PATH"
- .IP "fBs-1OBJC_INCLUDE_PATHs0fR" 4
- .IX Item "OBJC_INCLUDE_PATH"
- .PD
- Each variable's value is a list of directories separated by a special
- character, much like fBs-1PATHs0fR, in which to look for header files.
- The special character, f(CW*(C`PATH_SEPARATOR*(C'fR, is target-dependent and
- determined at s-1GCCs0 build time. For Microsoft Windows-based targets it is a
- semicolon, and for almost all other targets it is a colon.
- .Sp
- &fBs-1CPATHs0fR specifies a list of directories to be searched as if
- specified with fB-IfR, but after any paths given with fB-IfR
- options on the command line. This environment variable is used
- regardless of which language is being preprocessed.
- .Sp
- The remaining environment variables apply only when preprocessing the
- particular language indicated. Each specifies a list of directories
- to be searched as if specified with fB-isystemfR, but after any
- paths given with fB-isystemfR options on the command line.
- .Sp
- In all these variables, an empty element instructs the compiler to
- search its current working directory. Empty elements can appear at the
- beginning or end of a path. For instance, if the value of
- &fBs-1CPATHs0fR is f(CW*(C`:/special/include*(C'fR, that has the same
- effect as fB-I. -I/special/includefR.
- .IP "fBs-1DEPENDENCIES_OUTPUTs0fR" 4
- .IX Item "DEPENDENCIES_OUTPUT"
- If this variable is set, its value specifies how to output
- dependencies for Make based on the non-system header files processed
- by the compiler. System header files are ignored in the dependency
- output.
- .Sp
- The value of fBs-1DEPENDENCIES_OUTPUTs0fR can be just a file name, in
- which case the Make rules are written to that file, guessing the target
- name from the source file name. Or the value can have the form
- &fIfilefRfB fRfItargetfR, in which case the rules are written to
- file fIfilefR using fItargetfR as the target name.
- .Sp
- In other words, this environment variable is equivalent to combining
- the options fB-MMfR and fB-MFfR,
- with an optional fB-MTfR switch too.
- .IP "fBs-1SUNPRO_DEPENDENCIESs0fR" 4
- .IX Item "SUNPRO_DEPENDENCIES"
- This variable is the same as fBs-1DEPENDENCIES_OUTPUTs0fR (see above),
- except that system header files are not ignored, so it implies
- &fB-MfR rather than fB-MMfR. However, the dependence on the
- main input file is omitted.
- .SH "SEE ALSO"
- .IX Header "SEE ALSO"
- &fIgplfR|(7), fIgfdlfR|(7), fIfsf-fundingfR|(7),
- &fIgccfR|(1), fIasfR|(1), fIldfR|(1), and the Info entries for fIcppfR, fIgccfR, and
- &fIbinutilsfR.
- .SH "COPYRIGHT"
- .IX Header "COPYRIGHT"
- Copyright (c) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
- .PP
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the s-1GNUs0 Free Documentation License, Version 1.1 or
- any later version published by the Free Software Foundation. A copy of
- the license is included in the
- man page fIgfdlfR|(7).
- This manual contains no Invariant Sections. The Front-Cover Texts are
- (a) (see below), and the Back-Cover Texts are (b) (see below).
- .PP
- (a) The s-1FSFs0's Front-Cover Text is:
- .PP
- .Vb 1
- & A GNU Manual
- .Ve
- .PP
- (b) The s-1FSFs0's Back-Cover Text is:
- .PP
- .Vb 3
- & 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.
- .Ve