C++(1)                                                     C++(1)

     NAME
          c++/2c, c++/kc, c++/vc, c++/8c, c++/2l, c++/kl, c++/vl,
          c++/8l - C++ compilers and loaders

     SYNOPSIS
          c++/2c [options] file ...
          c++/8c [options] file ...
          c++/kc [options] file ...
          c++/vc [options] file ...
          c++/2l [options] file ...
          c++/8l [options] file ...
          c++/kl [options] file ...
          c++/vl [options] file ...

     DESCRIPTION
          The c++ compilers, c++/?c, compile the named C++ files into
          object files for the specified architecture (see 2c(1)).
          They use cpp(1) as the preprocessor, cfront 3.0.1 as the C++
          to C translator, and the appropriate C compiler such as 2c.
          The c++ loaders, C++/?l, load object files using appropriate
          object loaders (see 2l(1)) and patch, the C++ static con-
          structor initializer.

          The compilers and loaders use C++ and APE (ANSI C/POSIX)
          include files and libraries.

          Let the first letter of the base name of the compiler or
          loader be O= 2, 8, k, or v.

          The compiler options are:

          -d        Don't expand inline functions.

          -o obj    Place output in file obj (allowed only if there is
                    just one input file).  Default is to take the last
                    element of the input path name, strip any trailing
                    .c, and append .O.

          -v        Print the version number of the compiler and the
                    commands as they are executed.  A second -v causes
                    the commands that would be executed to be printed
                    without actually executing them.

          -w        Print warning messages.

          -xfile    Take cross compiling information from file. By
                    default, this information is taken from
                    /sys/lib/c++/O.sz.

          -A        Complain about functions used without a new-style

     C++(1)                                                     C++(1)

                    ANSI function prototype.

          -B        Turn off the action of the -A flag.  This option
                    is on by default.

          -Dname=def
          -Dname    Define the name to the preprocessor, as if by
                    `#define'.  If no definition is given, the name is
                    defined as `1'.

          -E        Print the preprocessed version of the file on
                    standard output.

          -F        Print the preprocessed and cfronted version of the
                    file on standard output.

          -Idir     `#include' files whose names do not begin with `/'
                    are always sought first in the directory of the
                    file argument, then in directories named in -I
                    options, then in /$objtype/include/c++,
                    /sys/include/c++, /$objtype/include/ape, and
                    /sys/include/ape.

          -O        Perform object code optimization.  This option is
                    on by default.

          -N        Turn off the action of the -O flag.

          -S        Print an assembly language version of the object
                    code on standard output.

          -Uname    Remove any initial definition of name.

          -a        Instead of compiling, print on standard output
                    acid functions (see acid(1)) for examining struc-
                    tures declared in the source files.

          The loader options are:

          -o out    Place output in file out. Default is O.out.

     EXAMPLE
          To produce a MIPS executable prog from C++ files main.c,
          sub.c, and using the task library:

               c++/vc main.c sub.c
               c++/vl -o prog main.v sub.v m.v -ltask

     FILES
          /sys/include/c++           directory for machine-independent
                                     #include directives.
          /sys/include/ape           directory for machine-independent

     C++(1)                                                     C++(1)

                                     #include directives.
          /$objtype/include/c++      directory for machine-dependent
                                     #include directives.
          /$objtype/include/ape      directory for machine-dependent
                                     #include directives.
          /$objtype/lib/c++          C++ libraries.
          /$objtype/lib/ape/libap.a  ANSI C/POSIX library.
          /sys/lib/c++/O.sz          Cross-compilation information for
                                     cfront.
          /$cputype/bin/c++/cfront   C++ to C translator.
          /$cputype/bin/c++/patch    C++ static constructor initial-
                                     izer.

     SOURCE
          /sys/src/c++

     SEE ALSO
          2c(1), 2a(1), 2l(1), db(1), acid(1), cpp(1), mk(1), nm(1),
          pcc(1)

     BUGS
          The task library works only for the MIPS and the SPARC.  The
          Interrupt class is not yet supported.  The source to the
          translator is not included in the distribution.