# A. Alphabetical listing of command-line options

The following is alphabetical listing of all command-line options, as generated by the compiler:

    Free Pascal Compiler version 1.0.5 [2001/10/29] for i386
    Copyright (c) 1993-2000 by Florian Klaempfl
    /usr/local/lib/fpc/1.0.5/fpc [options] <inputfile> [options]
    put + after a boolean switch option to enable it, - to disable it
      -a     the compiler doesn't delete the generated assembler file
          -al        list sourcecode lines in assembler file
          -ar        list register allocation/release info in assembler file
          -at        list temp allocation/release info in assembler file
      -b     generate browser info
          -bl        generate local symbol info
      -B     build all modules
      -C<x>  code generation options:
          -CD        create also dynamic library (not supported)
          -Ch<n>     <n> bytes heap (between 1023 and 67107840)
          -Ci        IO-checking
          -Cn        omit linking stage
          -Co        check overflow of integer operations
          -Cr        range checking
          -Cs<n>     set stack size to <n>
          -Ct        stack checking
          -CX        create also smartlinked library
      -d<x>  defines the symbol <x>
      -e<x>  set path to executable
      -E     same as -Cn
      -F<x>  set file names and paths:
          -FD<x>     sets the directory where to search for compiler utilities
          -Fe<x>     redirect error output to <x>
          -FE<x>     set exe/unit output path to <x>
          -Fi<x>     adds <x> to include path
          -Fl<x>     adds <x> to library path
          -FL<x>     uses <x> as dynamic linker
          -Fo<x>     adds <x> to object path
          -Fr<x>     load error message file <x>
          -Fu<x>     adds <x> to unit path
          -FU<x>     set unit output path to <x>, overrides -FE
      -g     generate debugger information:
          -gg        use gsym
          -gd        use dbx
          -gh        use heap trace unit (for memory leak debugging)
          -gl        use line info unit to show more info for backtraces
          -gc        generate checks for pointers
      -i     information
          -iD        return compiler date
          -iV        return compiler version
          -iSO       return compiler OS
          -iSP       return compiler processor
          -iTO       return target OS
          -iTP       return target processor
      -I<x>  adds <x> to include path
      -k<x>  Pass <x> to the linker
      -l     write logo
      -n     don't read the default config file
      -o<x>  change the name of the executable produced to <x>
      -pg    generate profile code for gprof (defines FPC_PROFILE)
      -P     use pipes instead of creating temporary assembler files
      -S<x>  syntax options:
          -S2        switch some Delphi 2 extensions on
          -Sc        supports operators like C (*=,+=,/= and -=)
          -sa        include assertion code.
          -Sd        tries to be Delphi compatible
          -Se<x>     compiler stops after the <x> errors (default is 1)
          -Sg        allow LABEL and GOTO
          -Sh        Use ansistrings
          -Si        support C++ styled INLINE
          -Sm        support macros like C (global)
          -So        tries to be TP/BP 7.0 compatible
          -Sp        tries to be gpc compatible
          -Ss        constructor name must be init (destructor must be done)
          -St        allow static keyword in objects
      -s     don't call assembler and linker (only with -a)
      -u<x>  undefines the symbol <x>
      -U     unit options:
          -Un        don't check the unit name
          -Ur        generate release unit files
          -Us        compile a system unit
      -v<x>  Be verbose. <x> is a combination of the following letters:
          e : Show errors (default)       d : Show debug info
          w : Show warnings               u : Show unit info
          n : Show notes                  t : Show tried/used files
          h : Show hints                  m : Show defined macros
          i : Show general info           p : Show compiled procedures
          l : Show linenumbers            c : Show conditionals
          a : Show everything             0 : Show nothing (except errors)
          b : Show all procedure          r : Rhide/GCC compatibility mode
              declarations if an error    x : Executable info (Win32 only)
              occurs
      -X     executable options:
          -Xc        link with the c library
          -Xs        strip all symbols from executable
          -XD        try to link dynamic          (defines FPC_LINK_DYNAMIC)
          -XS        try to link static (default) (defines FPC_LINK_STATIC)
          -XX        try to link smart            (defines FPC_LINK_SMART)

    Processor specific options:
      -A<x>  output format:
          -Aas       assemble using GNU AS
          -Aasaout   assemble using GNU AS for aout (Go32v1)
          -Anasmcoff coff (Go32v2) file using Nasm
          -Anasmelf  elf32 (Linux) file using Nasm
          -Anasmobj  obj file using Nasm
          -Amasm     obj file using Masm (Microsoft)
          -Atasm     obj file using Tasm (Borland)
          -Acoff     coff (Go32v2) using internal writer
          -Apecoff   pecoff (Win32) using internal writer
      -R<x>  assembler reading style:
          -Ratt      read AT&T style assembler
          -Rintel    read Intel style assembler
          -Rdirect   copy assembler text directly to assembler file
      -O<x>  optimizations:
          -Og        generate smaller code
          -OG        generate faster code (default)
          -Or        keep certain variables in registers
          -Ou        enable uncertain optimizations (see docs)
          -O1        level 1 optimizations (quick optimizations)
          -O2        level 2 optimizations (-O1 + slower optimizations)
          -O3        level 3 optimizations (same as -O2u)
          -Op<x>     target processor:
             -Op1  set target processor to 386/486
             -Op2  set target processor to Pentium/PentiumMMX (tm)
             -Op3  set target processor to PPro/PII/c6x86/K6 (tm)
      -T<x>  Target operating system:
          -TGO32V1   version 1 of DJ Delorie DOS extender
          -TGO32V2   version 2 of DJ Delorie DOS extender
          -TLINUX    Linux
          -TOS2      OS/2 2.x
          -TSUNOS    SunOS/Solaris
          -TWin32    Windows 32 Bit
          -TBeOS     BeOS
      -W<x>  Win32 target options
          -WB<x>     Set Image base to Hexadecimal <x> value
          -WC        Specify console type application
          -WD        Use DEFFILE to export functions of DLL or EXE
          -WF        Specify full-screen type application (OS/2 only)
          -WG        Specify graphic type application
          -WN        Do not generate relocation code (necessary for debugging)
          -WR        Generate relocation code

      -?     shows this help
      -h     shows this help without waiting