C++(1) C++(1)
NAME
c++/2c, c++/kc, c++/vc, c++/8c, c++/zc, c++/2l, c++/kl,
c++/vl, c++/8l, c++/zl - C++ compilers and loaders
SYNOPSIS
c++/2c [options] name ...
c++/8c [options] name ...
c++/kc [options] name ...
c++/vc [options] name ...
c++/zc [options] name ...
c++/2l [options] name ...
c++/8l [options] name ...
c++/kl [options] name ...
c++/vl [options] name ...
c++/zl [options] name ...
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, v, or z.
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.
-x file Take cross compiling information from file. By
default, this information is taken from
/sys/lib/c++/O.sz.
Page 1 Plan 9 (printed 11/7/25)
C++(1) C++(1)
-A Complain about functions used without a new-style
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.
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
#include directives.
/$objtype/include/c++ directory for machine-dependent
#include directives.
Page 2 Plan 9 (printed 11/7/25)
C++(1) C++(1)
/$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.
SEE ALSO
2c(1), 2a(1), 2l(1), db(1) cpp(1), mk(1), nm(1), pcc(1)
rl(1),
BUGS
The task library works only for the MIPS and the SPARC; it
will not work for the other machines any time soon. The
Interrupt class is not yet supported.
Page 3 Plan 9 (printed 11/7/25)