Solaris系统自带了两种不同的编译器。cc来自于Unix的c语言编译器,是 c compiler 的缩写,位于 /usr/ucb目录;gcc来自Linux,是GNU compiler collection,位于/usr/sfw/bin目录。
bash-3.2# man cc
SunOS/BSD Compatibility Package Commands cc(1B)
NAME
cc - C compiler
SYNOPSIS
/usr/ucb/cc [options]
DESCRIPTION
/usr/ucb/cc is the interface to the BSD Compatibility Pack-
age C compiler. It is a script that looks for the link
/usr/ccs/bin/ucbcc to the C compiler. The /usr/ccs/bin/ucbcc
link is available only with the SPROcc package, whose
default location is /opt/SUNWspro. The /usr/ucb/cc interface
is identical to /usr/ccs/bin/ucbcc, except that BSD headers
are used and BSD libraries are linked before base
libraries. The /opt/SUNWspro/man/man1/acc.1 man page is
available only with the SPROcc package.
……
bash-3.2# man -M /usr/sfw/man gcc
Reformatting page. Please Wait... done
GNU GCC(1)
NAME
gcc - GNU project C and C++ compiler
SYNOPSIS
gcc [-c|-S|-E] [-std=standard]
[-g] [-pg] [-Olevel]
[-Wwarn...] [-pedantic]
[-Idir...] [-Ldir...]
[-Dmacro[=defn]...] [-Umacro]
[-foption...] [-mmachine-option...]
[-o outfile] infile...
Only the most useful options are listed here; see below for
the remainder. g++ accepts mostly the same options as gcc.
DESCRIPTION
When you invoke GCC, it normally does preprocessing,
compilation, assembly and linking. The ``overall options''
allow you to stop this process at an intermediate stage.
For example, the -c option says not to run the linker. Then
the output consists of object files output by the assembler.
Other options are passed on to one stage of processing.
Some options control the preprocessor and others the
compiler itself. Yet other options control the assembler
and linker; most of these are not documented here, since you
rarely need to use any of them.
Most of the command line options that you can use with GCC
are useful for C programs; when an option is only useful
with another language (usually C++), the explanation says so
explicitly. If the description for a particular option does
not mention a source language, you can use that option with
all supported languages.
The gcc program accepts options and file names as operands.
Many options have multi-letter names; therefore multiple
single-letter options may not be grouped: -dr is very
different from -d -r.
You can mix options and other arguments. For the most part,
the order you use doesn't matter. Order does matter when
you use several options of the same kind; for example, if
you specify -L more than once, the directories are searched
in the order specified.
Many options have long names starting with -f or with
-W---for example, -fforce-mem, -fstrength-reduce, -Wformat
and so on. Most of these have both positive and negative
forms; the negative form of -ffoo would be -fno-foo. This
manual documents only one of these two forms, whichever one
is not the default.
……