CC.1
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:4k
源码类别:

操作系统开发

开发平台:

C/C++

  1. .TH CC 1
  2. .SH NAME
  3. cc - C compiler
  4. .SH SYNOPSIS
  5. fBccfR [fB-STOUfcimosfR]fR [fB-w[aos]fR] [fB-v[n]fR] [fB-DfInamefR]* [fB-IfIdirfR]* [fB-LfIdirfR]* fIfilefR+ [fB-lfInamefR]*fR
  6. .br
  7. .de FL
  8. .TP
  9. \fB\$1\fR
  10. \$2
  11. ..
  12. .de EX
  13. .TP 20
  14. \fB\$1\fR
  15. # \$2
  16. ..
  17. .SH OPTIONS
  18. .FL "-D" "The flag fB-DfIx[=y]fR defines a macro fIxfR with (optional) value fIyfR"
  19. .FL "-I" "fB-IfIdirfR searches fIdirfR for include files"
  20. .FL "-L" "fB-LfIdirfR searches fIdirfR for fB-lfInamefR libraries"
  21. .FL "-O" "Optimize the code"
  22. .FL "-S" "Produce an assembly code file, then stop"
  23. .FL "-T" "The flag fB-TfIdirfR tells fIccfR and fIasfR to use fIdirfR for temporary files"
  24. .FL "-U" "Undefine a macro"
  25. .FL "-E" "Preprocess to standard output"
  26. .FL "-c" "Compile only.  Do not link"
  27. .FL "-f" "Link with floating point emulation library"
  28. .FL "-i" "Use separate I & D space (64K + 64K) (*(Mp only)"
  29. .FL "-l" "The flag fB-lfInamefR causes the library libfInamefR.a to be linked"
  30. .FL "-m" "Remove unnecessary prototypes after preprocessing (*(Mp only)"
  31. .FL "-o" "Put output on file named by next arg"
  32. .FL "-s" "Strip the symbol-table from executable file"
  33. .FL "-v" "Verbose; print pass names"
  34. .FL "-vn" "fRVerbose; print pass names but do not run them"
  35. .FL "-w" "fRSuppress warning messages"
  36. .FL "-ws" "fRSuppress strict messages"
  37. .FL "-wa" "fRSuppress all warning and strict messages"
  38. .FL "-wo" "fRSuppress messages about old-style"
  39. .FL "-.o" "Do not link the default run-time start-off"
  40. .SH EXAMPLES
  41. .EX "cc -c file.c" "Compile fIfile.cfR"
  42. .EX "cc -DFOO file.c" "Treat the symbol fIFOOfR as defined"
  43. .EX "cc -wo -o out file.c" "Compile old-style code; output to fIoutfR"
  44. .SH DESCRIPTION
  45. ." .if t .ta 0.9i 1.25i 2.75i 3.25i 3.75i
  46. ." .if n .ta 10 15 39
  47. .PP
  48. This is the C compiler.
  49. It has eight passes, as follows:
  50. .PP
  51. .if t .ta 1.4i 2.1i 2.8i
  52. .if n .ta 13 21 30
  53.    fBProgram Input Output Operation performedfR
  54. .br
  55.    lib/ncpp prog.c prog.i C preprocessor: #include, #define, #ifdef
  56. .br
  57.    lib/irrel prog.i prog.i Removal of unnecessary prototypes
  58. .br
  59.    lib/ncem prog.i prog.k Parsing and semantic analysis
  60. .br
  61.    lib/nopt prog.k prog.m Optimization of the intermediate code
  62. .br
  63.    lib/ncg prog.m prog.s Code generation
  64. .br
  65.    bin/as prog.s prog.o Assembly
  66. .br
  67.    lib/ld prog.o prog.out Linking
  68. .br
  69.    lib/cv prog.out a.out Conversion to s-1MINIXs0 a.out format
  70. .PP
  71. In the 68000 versions of s-1MINIXs0 , the preprocessor is not called since the
  72. front-end contains the preprocessor.  This increases compilation speed.
  73. .PP
  74. The main program,
  75. .I cc ,
  76. forks appropriately to call the passes, transmitting flags and arguments.
  77. The fB-vfR flag causes the passes to be listed as they are called, and
  78. the fB-vnfR flag causes the passes to be listed but not called.
  79. .PP
  80. The libraries should be made with fIaalfR (which is the same as fIarfR on the
  81. 68000 versions), and consist of .o files.  The internal order of files
  82. inside the library is unimportant, but the order in which the libraries are
  83. specified is.
  84. .PP
  85. .PP
  86. When fB-TfR is used, the intermediate files end up in the directory
  87. specified.  Otherwise,
  88. .B /tmp
  89. is used.
  90. When available memory is very limited (e.g., a 512K machine), it may be
  91. necessary to run
  92. .I chmem
  93. to reduce the sizes of the compiler passes that do not fit, typically
  94. .I ncem .
  95. .PP
  96. On the other hand, 
  97. if the compiler (or, in fact, almost any program)
  98. begins acting strange, it is almost always due to its running
  99. out of space, either stack space or scratch file space.
  100. The relevant pass can be given more stack space using
  101. .I chmem .
  102. More space for scratch files can be obtained
  103. by removing other files on the device.
  104. .PP
  105. If the compiler runs out of memory, it may be necessary to use the
  106. fB-mfR flag.  This causes
  107. .I irrel
  108. to be run, which removes unnecessary prototypes and thus frees up
  109. extra table space within the compiler.
  110. Beware, however,
  111. that running this pass may cause strictly conforming programs to become
  112. non-conforming and vice versa, so you should only run this pass as a last
  113. resort.
  114. .PP
  115. The compiler is derived from the ACK system (Tanenbaum et 
  116. al., fICommunications of the ACMfR, Sept. 1983),
  117. not from the AT&T portable C compiler.
  118. It has been shoehorned onto the PC with some loss of performance.
  119. .SH "SEE ALSO"
  120. .BR make (1).