# Output, Debug, and Precompiled Header (PCH) Options

This section contains descriptions for compiler options that pertain to output, debugging, or precompiled headers (PCH).

Parent topic: Compiler Option Details

- c
  Prevents linking.
- debug (Linux* and macOS*)
  Enables or disables generation of debugging information.
- debug (Windows*)
  Enables or disables generation of debugging information.
- Fa
  Specifies that an assembly listing file should be generated.
- FA
  Specifies the contents of an assembly listing file.
- fasm-blocks
  Enables the use of blocks and entire functions of assembly code within a C or C++ file.
- FC
  Displays the full path of source files passed to the compiler in diagnostics.
- fcode-asm
  Produces an assembly listing with machine code annotations.
- Fd
  Lets you specify a name for a program database (PDB) file created by the compiler.
- FD
  Generates file dependencies related to the Microsoft* C/C++ compiler.
- Fe
  Specifies the name for a built program or dynamic-link library.
- feliminate-unused-debug-types, Qeliminate-unused-debug-types
  Controls the debug information emitted for types declared in a compilation unit.
- femit-class-debug-always
  Controls the format and size of debug information generated by the compiler for C++ classes.
- fmerge-constants
  Determines whether the compiler and linker attempt to merge identical constants (string constants and floating-point constants) across compilation units.
- fmerge-debug-strings
  Causes the compiler to pool strings used in debugging information.
- Fo
  Specifies the name for an object file.
- Fp
  Lets you specify an alternate path or file name for precompiled header files.
- FR
  Invokes the Microsoft* C/C++ compiler and tells it to produce a BSCMAKE .sbr file with complete symbolic information.
- fsource-asm
  Produces an assembly listing with source code annotations.
- ftrapuv, Qtrapuv
  Initializes stack local variables to an unusual value to aid error detection.
- fverbose-asm
  Produces an assembly listing with compiler comments, including options and version information.
- g
  Tells the compiler to generate a level of debugging information in the object file.
- gdwarf
  Lets you specify a DWARF Version format when generating debug information.
- Gm
  Enables a minimal rebuild.
- grecord-gcc-switches
  Causes the command line options that were used to invoke the compiler to be appended to the DW_AT_producer attribute in DWARF debugging information.
- gsplit-dwarf
  Creates a separate object file containing DWARF debug information.
- map-opts, Qmap-opts
  Maps one or more compiler options to their equivalent on a different operating system.
- o
  Specifies the name for an output file.
- pch
  Tells the compiler to use appropriate precompiled header files.
- pch-create
  Tells the compiler to create a precompiled header file.
- pch-dir
  Tells the compiler the location for precompiled header files.
- pch-use
  Tells the compiler to use a precompiled header file.
- pdbfile
  Lets you specify the name for a program database (PDB) file created by the linker.
- print-multi-lib
  Prints information about where system libraries should be found.
- Qpchi
  Enable precompiled header coexistence to reduce build time.
- Quse-msasm-symbols
  Tells the compiler to use a dollar sign ("$") when producing symbol names.
- RTC
  Enables checking for certain run-time conditions.
- S
  Causes the compiler to compile to an assembly file only and not link.
- use-asm, Quse-asm
  Tells the compiler to produce objects through the assembler. This is a deprecated option. There is no replacement option.
- use-msasm
  Enables the use of blocks and entire functions of assembly code within a C or C++ file.
- V (Windows*)
  Places the text string specified into the object file being generated by the compiler.
- Y-
  Tells the compiler to ignore all other precompiled header files.
- Yc
  Tells the compiler to create a precompiled header file.
- Yd
  Tells the compiler to add complete debugging information in all object files created from a precompiled header file when option /Zi or /Z7 is specified. This is a deprecated option. There is no replacement option.
- Yu
  Tells the compiler to use a precompiled header file.
- Zi, Z7, ZI
  Tells the compiler to generate full debugging information in either an object (.obj) file or a project database (PDB) file.
- Zo
  Enables or disables generation of enhanced debugging information for optimized code.