CC.1
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:5k
- CC(1) Minix Programmer's Manual CC(1)
- NAME
- cc - C compiler
- SYNOPSIS
- cc [-STOUfcimos] [-w[aos]] [-v[n]] [-Dname]* [-Idir]* [-Ldir]* file+
- [-lname]*
- OPTIONS
- -D The flag -Dx[=y] defines a macro x with (optional) value y
- -I -Idir searches dir for include files
- -L -Ldir searches dir for -lname libraries
- -O Optimize the code
- -S Produce an assembly code file, then stop
- -T The flag -Tdir tells cc and as to use dir for temporary files
- -U Undefine a macro
- -E Preprocess to standard output
- -c Compile only. Do not link
- -f Link with floating point emulation library
- -i Use separate I & D space (64K + 64K) ( only)
- -l The flag -lname causes the library libname.a to be linked
- -m Remove unnecessary prototypes after preprocessing ( only)
- -o Put output on file named by next arg
- -s Strip the symbol-table from executable file
- -v Verbose; print pass names
- -vn Verbose; print pass names but do not run them
- -w Suppress warning messages
- -ws Suppress strict messages
- -wa Suppress all warning and strict messages
- 1
- CC(1) Minix Programmer's Manual CC(1)
- -wo Suppress messages about old-style
- -.o Do not link the default run-time start-off
- EXAMPLES
- cc -c file.c # Compile file.c
- cc -DFOO file.c # Treat the symbol FOO as defined
- cc -wo -o out file.c
- # Compile old-style code; output to out
- DESCRIPTION
- This is the C compiler. It has eight passes, as follows:
- Program Input Output Operation performed
- lib/ncpp prog.c prog.i C preprocessor: #include, #define, #ifdef
- lib/irrel prog.i prog.i Removal of unnecessary prototypes
- lib/ncem prog.i prog.k Parsing and semantic analysis
- lib/nopt prog.k prog.m Optimization of the intermediate code
- lib/ncg prog.m prog.s Code generation
- bin/as prog.s prog.o Assembly
- lib/ld prog.o prog.out Linking
- lib/cv prog.out a.out Conversion to MINIX a.out format
- In the 68000 versions of MINIX , the preprocessor is not called since the
- front-end contains the preprocessor. This increases compilation speed.
- The main program, cc , forks appropriately to call the passes,
- transmitting flags and arguments. The -v flag causes the passes to be
- listed as they are called, and the -vn flag causes the passes to be
- listed but not called.
- The libraries should be made with aal (which is the same as ar on the
- 68000 versions), and consist of .o files. The internal order of files
- inside the library is unimportant, but the order in which the libraries
- are specified is.
- When -T is used, the intermediate files end up in the directory
- specified. Otherwise, /tmp is used. When available memory is very
- limited (e.g., a 512K machine), it may be necessary to run chmem to
- reduce the sizes of the compiler passes that do not fit, typically ncem .
- On the other hand, if the compiler (or, in fact, almost any program)
- begins acting strange, it is almost always due to its running out of
- space, either stack space or scratch file space. The relevant pass can
- be given more stack space using chmem . More space for scratch files can
- be obtained by removing other files on the device.
- 2
- CC(1) Minix Programmer's Manual CC(1)
- If the compiler runs out of memory, it may be necessary to use the -m
- flag. This causes irrel to be run, which removes unnecessary prototypes
- and thus frees up extra table space within the compiler. Beware,
- however, that running this pass may cause strictly conforming programs to
- become non-conforming and vice versa, so you should only run this pass as
- a last resort.
- The compiler is derived from the ACK system (Tanenbaum et al.,
- Communications of the ACM, Sept. 1983), not from the AT&T portable C
- compiler. It has been shoehorned onto the PC with some loss of
- performance.
- SEE ALSO
- make(1).
- 3