CPP(1) GNU CPP(1) (NAME) cpp - C (SYNOPSIS) cpp [-Dmacro[=defn]...] [-Umacro] [-Idir...] [-iquotedir...] [-M|-MM] [-MG] [-MF filename] [-MP] [-MQ target...] [-MT target...] infile [[-o] outfile] . cpp (driver) gcc . GCC ..SH " (DESCRIPTION)" C cpp C . . C C C++ Objective-C . . C . . C . Makefile (hard tabs) Makefile . C cpp . (Ada ). . -traditional-cpp . C C++ . . GNU . . GNU M4 . C . GNU C ISO C . GNU C . ( ) . ISO C -std=c90 -std=c99 -std=c11 -std=c17 . -pedantic . ISO . ISO . Traditional Mode . CPP GNU CPP . (OPTIONS) cpp : infile outfile. infile #include . outfile . infile outfile - infile outfile . - . -o outfile . = : -Ifoo -I foo . : -dM -d -M . -D name --define-macro=name --define-macro name name 1 . -D name=definition --define-macro=name=definition --define-macro name=definition definition #define . (newline) . . ( ) . . sh csh -D'name(args...)=definition' . -D -U . -imacros file -include file -D -U . -U name --undefine-macro=name --undefine-macro name name -D . -include file --include=file --include file file "#include "file"" . file . "#include "..."" . -include . -imacros file --imacros=file --imacros file -include file . . . -imacros -include . -undef GCC . . -pthread POSIX . (linking) . GNU/Linux Cygwin MinGW x86 . -M --dependencies make . make (object file) -include -imacros . ( -MT -MQ) . \- . . -dM . -MF DEPENDENCIES_OUTPUT . . -M -E -w ..IP -MM 4 --user-dependencies -M . (<>) ("") #include -MM . -MF file -M -MM . -MF . -MD -MMD -MF . file - stdout . -MG --print-missing-file-dependencies -M -MG . "#include" . -MG . makefile . -Mno-modules . -MP CPP (phony target) . Makefile make . : test.o: test.c test.h test.h: -MT target (target) . CPP .c (object) . . -MT . -MT -MT . -MT '$(objpfx)foo.o' : $(objpfx)foo.o: foo.c -MQ target -MT Make () . -MQ '$(objpfx)foo.o' : $$(objpfx)foo.o: foo.c -MQ . -MD --write-dependencies -MD -M -MF file -E . (driver) file -o . .d .d . -MD -E -o -E -o . -E -MD . -MMD --write-user-dependencies -MD . -fpreprocessed . (trigraph) (escaped newline splicing) . -C . (tokenizer) . .i .ii .mi -fpreprocessed . GCC -save-temps . -fdirectives-only (directives) . -E -fpreprocessed . -E "#define" "#ifdef" "#error" . trigraph . -dD . -fpreprocessed . "__LINE__" . "-E -fdirectives-only" . -E -fpreprocessed -fpreprocessed . "-E -fdirectives-only" . -fdollars-in-identifiers $ . -fextended-identifiers (universal character names) . C99 ( C) C++ . -fno-canonical-system-headers (canonicalization) . -fmax-include-depth=depth #include . 200 . -fsearch-include-path[=kind] #include . C++20 : g++ -c -std=c++20 -fmodules -fsearch-include-path bits/stdc++.h bits/std.cc kind user #include "..." system "#include <...>" . -ftabstop=width (tab stops). . 1 100 . 8 . -ftrack-macro-expansion[=level] . . . level . 0 level . 1 . . 2 . . 2 . "-ftrack-macro-expansion=2" ..IP -fmacro-prefix-map=old=new 4 old "__FILE__" "__BASE_FILE__" new . . new (reproducible builds) . "__builtin_FILE()" . -ffile-prefix-map -fcanon-prefix-map. -fexec-charset=charset (execution character set) . UTF-8 . charset "iconv" . -fwide-exec-charset=charset (wide execution character set) . UTF-32BE UTF-32LE UTF-16BE UTF-16LE "wchar_t" (big-endian) (little-endian) . -fexec-charset charset "iconv" "wchar_t" . -finput-charset=charset GCC . UTF-8 . charset "iconv" . UTF-8 -Winvalid-utf8 (ill-formed code unit sequences) . . . -fworking-directory (linemarkers) . . GCC . -fno-working-directory . -P "#line" . -A predicate=answer --assert predicate=answer --assert=predicate=answer (assertion) predicate answer . -A predicate(answer) . . -A -predicate=answer --assert -predicate=answer --assert=-predicate=answer predicate answer . -C --comments . . -C () . # . -CC --comments-in-macros . -C . -C -CC ++C C . . -CC lint . -P --no-line-commands . C . -traditional --traditional -traditional-cpp --traditional-cpp C ISO C . GCC C -E CPP . -trigraphs --trigraphs (trigraphs) ISO C . ?? ISO C . ??/ \ '??/n' . GCC . -std -ansi . -remap MS-DOS . -H --trace-includes . #include . ...x ...! . -dletters --dump=letters --dump letters (dumps) letters . . letters GCC . letters . -dM --dump=M #define . . foo.h touch foo.h; cpp -dM foo.h . -dD --dump=D -dM #define . . -dN --dump=N -dD . -dI --dump=I #include . -dU --dump=U -dD #undef . -fdebug-cpp GCC . CPP -E (location maps) . (token) . GCC -E . -I dir -iquote dir -isystem dir -idirafter dir --include-directory-after=dir --include-directory-after dir --include-directory=dir --include-directory dir dir . --include-directory -I --include-directory-after -idirafter . dir = $SYSROOT = $SYSROOT sysroot --sysroot -isysroot . -iquote "#include "file"" . -I -isystem -idirafter "#include "file"" "#include " . . : 1. include . 2. include -iquote . 3. -I . 4. -isystem . 5. . 6. -idirafter . -I . -isystem . -isystem -idirafter . include -isystem -I -I . include . GCC "#include_next" . -nostdinc / -isystem . -I- --include-barrier include . . -I -I- -iquote -I- . -I -I- "#include "file"" "#include " . -I -I- #include . -I- "#include "file"" . -I- . -iprefix prefix --include-prefix=prefix --include-prefix prefix prefix -iwithprefix . / . -iwithprefix dir -iwithprefixbefore dir --include-with-prefix=prefix --include-with-prefix prefix --include-with-prefix-after=prefix --include-with-prefix-after prefix --include-with-prefix-before=prefix --include-with-prefix-before prefix dir -iprefix include . -iwithprefixbefore -I -iwithprefix -idirafter . --include-with-prefix --include-with-prefix-after -iwithprefix --include-with-prefix-before -iwithprefixbefore . -isysroot dir --sysroot ( Darwin ). --sysroot . -imultilib dir dir ++C . -imultiarch dir dir ++C . -nostdinc --no-standard-includes . -I -iquote -isystem / -idirafter ( ) . -nostdinc++ ++C . ( ++C .) --embed-dir=dir --embed-directory=dir --embed-directory dir dir "#embed" "__has_embed" . "#embed" . dir = $SYSROOT = $SYSROOT sysroot --sysroot -isysroot . -Wcomment -Wcomments /* /* // . -Wall . -Wtrigraphs (trigraph) . . -Wall . -Wall trigraph . trigraph -Wall -trigraphs -Wall -Wno-trigraphs . -Wundef "#if" . . -Wexpansion-to-defined defined ( #if ) . (portable) . -Wpedantic -Wextra . -Wunused-macros . . (undefined) . (built-in) include . : . . (dummy) : #if defined the_macro_causing_the_warning #endif -Wno-endif-labels "#else" "#endif" . : #if FOO ... #else FOO ... #endif FOO "FOO" () . ..SH " (ENVIRONMENT)" CPP . include . -I -M . GCC . CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH OBJC_INCLUDE_PATH ( PATH) (header files) . "PATH_SEPARATOR" (target-dependent) GCC . Microsoft Windows (semicolon) (colon) . CPATH -I -I . . . -isystem -isystem . . . CPATH ":/special/include" -I. -I/special/include . DEPENDENCIES_OUTPUT Make . . DEPENDENCIES_OUTPUT Make (target) . file target file target . -MM -MF -MT . SUNPRO_DEPENDENCIES DEPENDENCIES_OUTPUT ( ) -M -MM . . SOURCE_DATE_EPOCH (UNIX timestamp) "__DATE__" "__TIME__" (reproducible) . SOURCE_DATE_EPOCH ( ) 01 Jan 1970 00:00:00 ASCII "date +%s" GNU/Linux %s "date" . ..SH " (SEE ALSO)" gpl(7) gfdl(7) fsf-funding(7) gcc(1) Info cpp gcc. (COPYRIGHT) (c) 1987-2026 Free Software Foundation, Inc. / << >> (GNU Free Documentation License) 1.3 (Free Software Foundation) . gfdl(7) . (Invariant Sections) . (a) ( ) (b) ( ) . (a) FSF : (b) FSF : . . gcc-16.2.1 2026-08-10 CPP(1)