OS Manuals

/usr/bin/cpp-11

the GNU compiler collection - version 11

From gcc-11 11.5.0-r11 (os), captured 2026-11-05 by running cpp-11 --help (exit 0). permalink

Usage: cpp-11 [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase.
  --help                   Display this information.
  --target-help            Display target specific command line options.
  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].
                           Display specific types of command line options.
  (Use '-v --help' to display command line options of sub-processes).
  --version                Display compiler version information.
  -dumpspecs               Display all of the built in spec strings.
  -dumpversion             Display the version of the compiler.
  -dumpmachine             Display the compiler's target processor.
  -print-search-dirs       Display the directories in the compiler's search path.
  -print-libgcc-file-name  Display the name of the compiler's companion library.
  -print-file-name=<lib>   Display the full path to library <lib>.
  -print-prog-name=<prog>  Display the full path to compiler component <prog>.
  -print-multiarch         Display the target's normalized GNU triplet, used as
                           a component in the library path.
  -print-multi-directory   Display the root directory for versions of libgcc.
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories.
  -print-multi-os-directory Display the relative path to OS libraries.
  -print-sysroot           Display the target libraries directory.
  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers.
  -Wa,<options>            Pass comma-separated <options> on to the assembler.
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor.
  -Wl,<options>            Pass comma-separated <options> on to the linker.
  -Xassembler <arg>        Pass <arg> on to the assembler.
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor.
  -Xlinker <arg>           Pass <arg> on to the linker.
  -save-temps              Do not delete intermediate files.
  -save-temps=<arg>        Do not delete intermediate files.
  -no-canonical-prefixes   Do not canonicalize paths when building relative
                           prefixes to other gcc components.
  -pipe                    Use pipes rather than intermediate files.
  -time                    Time the execution of each subprocess.
  -specs=<file>            Override built-in specs with the contents of <file>.
  -std=<standard>          Assume that the input sources are for <standard>.
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           and libraries.
  -B <directory>           Add <directory> to the compiler's search paths.
  -v                       Display the programs invoked by the compiler.
  -###                     Like -v but options quoted and commands not executed.
  -E                       Preprocess only; do not compile, assemble or link.
  -S                       Compile only; do not assemble or link.
  -c                       Compile and assemble, but do not link.
  -o <file>                Place the output into <file>.
  -pie                     Create a dynamically linked position independent
                           executable.
  -shared                  Create a shared library.
  -x <language>            Specify the language of the following input files.
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension.

Options starting with -g, -f, -m, -O, -W, or --param are automatically
 passed on to the various sub-processes invoked by cpp-11.  In order to pass
 other options on to these processes the -W<letter> options must be used.

For bug reporting instructions, please see:
<https://gcc.gnu.org/bugs/>.
Options (101)
OptionDescriptionSource
-pass-exit-codesExit with highest error code from a phase.help
--helpDisplay this information.help
--target-helpDisplay target specific command line options.help
--versionDisplay compiler version information.help
-dumpspecsDisplay all of the built in spec strings.help
-dumpversionDisplay the version of the compiler.help
-dumpmachineDisplay the compiler's target processor.help
-print-search-dirsDisplay the directories in the compiler's search path.help
-print-libgcc-file-nameDisplay the name of the compiler's companion library.help
-print-file-name libDisplay the full path to library <lib>.help
-print-prog-name progDisplay the full path to compiler component <prog>.help
-print-multiarchDisplay the target's normalized GNU triplet, used as a component in the library path.help
-print-multi-directoryDisplay the root directory for versions of libgcc.help
-print-multi-libDisplay the mapping between command line options and multiple library search directories.help
-print-sysrootDisplay the target libraries directory.help
-WaPass comma-separated <options> on to the assembler.help
-WpPass comma-separated <options> on to the preprocessor.help
-WlPass comma-separated <options> on to the linker.help
-Xassembler argPass <arg> on to the assembler.help
-Xpreprocessor argPass <arg> on to the preprocessor.help
-Xlinker argPass <arg> on to the linker.help
-save-tempsDo not delete intermediate files.help
-no-canonical-prefixesDo not canonicalize paths when building relative prefixes to other gcc components.help
-pipeUse pipes rather than intermediate files.help
-timeTime the execution of each subprocess.help
-specs fileOverride built-in specs with the contents of <file>.help
-std standardAssume that the input sources are for <standard>.help
--sysroot directoryUse <directory> as the root directory for headers and libraries.help
-B directoryAdd <directory> to the compiler's search paths.help
-vDisplay the programs invoked by the compiler.help
-###Like -v but options quoted and commands not executed.help
-EPreprocess only;help
-SCompile only;help
-cCompile and assemble, but do not link.help
-o filePlace the output into <file>.help
-pieCreate a dynamically linked position independent executable.help
-sharedCreate a shared library.help
-x languageSpecify the language of the following input files.help
-D namePredefine name as a macro, with definition 1. (in the manual page but not in --help)man
-U nameCancel any previous definition of name, either built in or provided with a -D option. (in the manual page but not in --help)man
-include fileProcess file as if "#include "file"" appeared as the first line of the primary source file. (in the manual page but not in --help)man
-imacros fileExactly like -include, except that any output produced by scanning file is thrown away. (in the manual page but not in --help)man
-undefDo not predefine any system-specific or GCC-specific macros. (in the manual page but not in --help)man
-pthreadDefine additional macros required for using the POSIX threads library. (in the manual page but not in --help)man
-MInstead of outputting the result of preprocessing, output a rule suitable for make describing the dependencies of the main source file. (in the manual page but not in --help)man
-MMLike -M 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. (in the manual page but not in --help)man
-MF fileWhen used with -M or -MM, specifies a file to write the dependencies to. (in the manual page but not in --help)man
-MGIn conjunction with an option such as -M requesting dependency generation, -MG assumes missing header files are generated files and adds them to the dependency list without raising an error. (in the manual page but not in --help)man
-Mno-modulesDisable dependency generation for compiled module interfaces. (in the manual page but not in --help)man
-MPThis option instructs CPP to add a phony target for each dependency other than the main file, causing each to depend on nothing. (in the manual page but not in --help)man
-MT targetChange the target of the rule emitted by dependency generation. (in the manual page but not in --help)man
-MQ targetSame as -MT, but it quotes any characters which are special to Make. (in the manual page but not in --help)man
-MD (in the manual page but not in --help)man
-MMDLike -MD except mention only user header files, not system header files. (in the manual page but not in --help)man
-fpreprocessedIndicate to the preprocessor that the input file has already been preprocessed. (in the manual page but not in --help)man
-fdirectives-onlyWhen preprocessing, handle directives, but do not expand macros. (in the manual page but not in --help)man
-fdollars-in-identifiersAccept $ in identifiers. (in the manual page but not in --help)man
-fextended-identifiersAccept universal character names and extended characters in identifiers. (in the manual page but not in --help)man
-fno-canonical-system-headersWhen preprocessing, do not shorten system header paths with canonicalization. (in the manual page but not in --help)man
-fmax-include-depth depthSet the maximum depth of the nested #include. (in the manual page but not in --help)man
-ftabstop widthSet the distance between tab stops. (in the manual page but not in --help)man
-fmacro-prefix-map old=newWhen preprocessing files residing in directory old, expand the "__FILE__" and "__BASE_FILE__" macros as if the files resided in directory new instead. (in the manual page but not in --help)man
-fexec-charset charsetSet the execution character set, used for string and character constants. (in the manual page but not in --help)man
-fwide-exec-charset charsetSet the wide execution character set, used for wide string and character constants. (in the manual page but not in --help)man
-finput-charset charsetSet the input character set, used for translation from the character set of the input file to the source character set used by GCC. (in the manual page but not in --help)man
-fworking-directoryEnable generation of linemarkers in the preprocessor output that let the compiler know the current working directory at the time of preprocessing. (in the manual page but not in --help)man
-A predicate=answerMake an assertion with the predicate predicate and answer answer. (in the manual page but not in --help)man
-CDo not discard comments. (in the manual page but not in --help)man
-CCDo not discard comments, including during macro expansion. (in the manual page but not in --help)man
-PInhibit generation of linemarkers in the output from the preprocessor. (in the manual page but not in --help)man
-traditional (in the manual page but not in --help)man
-traditional-cppTry to imitate the behavior of pre-standard C preprocessors, as opposed to ISO C preprocessors. (in the manual page but not in --help)man
-trigraphsSupport ISO C trigraphs. (in the manual page but not in --help)man
-remapEnable special code to work around file systems which only permit very short file names, such as MS-DOS. (in the manual page but not in --help)man
-HPrint the name of each header file used, in addition to other normal activities. (in the manual page but not in --help)man
-dlettersSays to make debugging dumps during compilation as specified by letters. (in the manual page but not in --help)man
-dMInstead of the normal output, generate a list of #define directives for all the macros defined during the execution of the preprocessor, including predefined macros. (in the manual page but not in --help)man
-dDLike -dM except in two respects: it does not include the predefined macros, and it outputs both the #define directives and the result of preprocessing. (in the manual page but not in --help)man
-dNLike -dD, but emit only the macro names, not their expansions. (in the manual page but not in --help)man
-dIOutput #include directives in addition to the result of preprocessing. (in the manual page but not in --help)man
-dULike -dD except that only macros that are expanded, or whose definedness is tested in preprocessor directives, are output; (in the manual page but not in --help)man
-fdebug-cppThis option is only useful for debugging GCC. (in the manual page but not in --help)man
-I dir (in the manual page but not in --help)man
-iquote dir (in the manual page but not in --help)man
-isystem dir (in the manual page but not in --help)man
-idirafter dirAdd the directory dir to the list of directories to be searched for header files during preprocessing. (in the manual page but not in --help)man
-I-Split the include path. (in the manual page but not in --help)man
-iprefix prefixSpecify prefix as the prefix for subsequent -iwithprefix options. (in the manual page but not in --help)man
-iwithprefix dir (in the manual page but not in --help)man
-iwithprefixbefore dirAppend dir to the prefix specified previously with -iprefix, and add the resulting directory to the include search path. (in the manual page but not in --help)man
-isysroot dirThis option is like the --sysroot option, but applies only to header files (except for Darwin targets, where it applies to both header files and libraries). (in the manual page but not in --help)man
-imultilib dirUse dir as a subdirectory of the directory containing target-specific C++ headers. (in the manual page but not in --help)man
-nostdincDo not search the standard system directories for header files. (in the manual page but not in --help)man
-nostdinc++Do not search for header files in the C++-specific standard directories, but do still search the other standard directories. (in the manual page but not in --help)man
-Wcomment (in the manual page but not in --help)man
-WcommentsWarn whenever a comment-start sequence / appears in a / comment, or whenever a backslash-newline appears in a // comment. (in the manual page but not in --help)man
-WtrigraphsWarn if any trigraphs are encountered that might change the meaning of the program. (in the manual page but not in --help)man
-WundefWarn if an undefined identifier is evaluated in an "#if" directive. (in the manual page but not in --help)man
-Wexpansion-to-definedWarn whenever defined is encountered in the expansion of a macro (including the case where the macro is expanded by an #if directive). (in the manual page but not in --help)man
-Wunused-macrosWarn about macros defined in the main file that are unused. (in the manual page but not in --help)man
-Wno-endif-labelsDo not warn whenever an "#else" or an "#endif" are followed by text. (in the manual page but not in --help)man

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.