⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc.hlp

📁 GUN开源阻止下的编译器GCC
💻 HLP
字号:
1 GCC The GCC command invokes the GNU C compiler.       GCC file-spec2 Parameters file-spec A C source file.  If no input file  extension  is  specified,  GNU  C assumes  .C  as  the  default extension unless the /PLUS qualifier is given, in which case .CC is assumed as the default extension. If an extension of .CPP is given, then the source file is assumed  to be  the  output of the preprocessor, and thus the preprocessor is not executed. If an extension of .S is given, then the source file is assumed to be the  assembly  code output of the compiler, and only the assembler is called to generate an object file.2 Qualifiers GNU C command qualifiers modify the  way  the  compiler  handles  the compilation. The following is the list of available qualifiers for GNU C:       /CASE_HACK       /CC1_OPTIONS=(option [,option...]])       /DEBUG       /DEFINE=(identifier[=definition][,...])       /G_FLOAT       /INCLUDE_DIRECTORY=(path [,path...]])       /LIST[=filename]       /MACHINE_CODE       /OBJECT[=filename]       /OPTIMIZE       /PLUS       /PROFILE[=identifier]       /SCAN=(file[,file...])       /SHOW[=option]       /UNDEFINE=(identifier[,identifier,...])       /VERBOSE       /VERSION       /WARNING2 Linking When linking programs compiled with GNU C, you should include the GNU C library before the VAX C library.  For example,   LINK object-file,GNU_CC:[000000]GCCLIB/LIB,SYS$LIBRARY:VAXCRTL/LIB You can also link your program with the shared VAX C  library.   This can reduce the size of the .EXE file, as well as make it smaller when it's running.  For example,   $ LINK object-file, GNU_CC:[000000]GCCLIB/LIB,SYS$INPUT/OPT   SYS$SHARE:VAXCRTL/SHARE (If you use the second example and type it in by  hand,  be  sure  to type ^Z after the last carriage return).  A simpler alternative would be to place the single line:   SYS$SHARE:VAXCRTL/SHARE into a file called VAXCRTL.OPT, and then use the link command:   $ LINK object-file, GNU_CC:[000000]GCCLIB/LIB,VAXCRTL.OPT/OPT If a program has  been  compiled  with  /G_FLOAT,  then  the  linking instructions  are  slightly  different.   If you are linking with the non-shared library, then the command that you should use would be:   LINK object-file,GNU_CC:[000000]GCCLIB/LIB,SYS$LIBRARY:VAXCRTLG/LIB -                                ,SYS$LIBRARY:VAXCRTL/LIB Note that both VAXCRTL and VAXCRTLG must be linked to.   If  you  are using the shared VAX C library, then you should use a command like:   $ LINK object-file, GNU_CC:[000000]GCCLIB/LIB,SYS$INPUT:/OPTIONS   SYS$SHARE:VAXCRTLG/SHARE In the case of the sharable library, only one  library  needs  to  be linked to. If you need to link to libg++, it  is  easiest  to  use  the  command procedure supplied with libg++ to link your program.2 /CASE_HACK   /[NO]CASE_HACK      D=/CASE_HACK Since the VMS Linker  and  Librarian  are  not  case  sensitive  with respect  to  symbol names, a "case-hack" is appended to a symbol name when the symbol contains upper case characters. There are cases where this is undesirable, (mainly when using certain applications  where modules have been precompiled, perhaps in another language) and we want to compile  without  case  hacking.   In  these cases the /NOCASE_HACK switch disables case hacking.2 /CC1_OPTIONS This specifies additional  switches  to  the  compiler  itself  which cannot be set by means of the compiler driver.2 /DEBUG /DEBUG includes additional information in the object file  output  so that the program can be debugged with the VAX Symbolic Debugger. To use the debugger it is also necessary to link the debugger to your program, which is done by specifying the /DEBUG qualifier to the link command.  With the  debugger  it  is  possible  to  set  breakpoints, examine  variables,  and  set  variables  to new values.  See the VAX Symbolic Debugger manual for more information, or  type  "HELP"  from the debugger prompt.2 /DEFINE /DEFINE=(identifier[=definition][,...]) /DEFINE defines a string or macro ('definition')  to  be  substituted for  every  occurrence of a given string ('identifier') in a program. It is equivalent to the #define preprocessor directive. All definitions and identifiers are  converted  to  uppercase  unless they are in quotation marks. The simple form of the /DEFINE qualifier:    /DEFINE=vms results in a definition equivalent to the preprocessor directive:  #define VMS 1 You must enclose macro definitions in quotation  marks,  as  in  this example:  /DEFINE="C(x)=((x) & 0xff)" This definition is the same as the preprocessor definition:  #define C(x) ((x) & 0xff) If more than one /DEFINE is present on the GCC command line, only the last /DEFINE is used. If both /DEFINE and /UNDEFINE are present on a command line,  /DEFINE is evaluated before /UNDEFINE.2 /G_FLOAT Instructs the compiler to use "G" floating point  arithmetic  instead of  "D".   The  difference  is  that  double precision has a range of approximately +/-0.56e-308 to +/-0.9  e+308,  with  approximately  15 decimal digits precision. "D" floating point has the same range as  single  precision  floating point, with approximately 17 decimal digits precision. If you use the  /G_FLOAT  qualifier,  the  linking  instructions  are different.  See "Linking" for further details.2 /LIST /LIST[=list_file_name] This does not generate a listing file in the usual sense, however  it does  direct the compiler to save the preprocessor output.  If a file is not specified, then this output is written into a  file  with  the same name as the source file and an extension of .CPP.2 /INCLUDE_DIRECTORY  /INCLUDE_DIRECTORY=(path [,path...]) The /INCLUDE_DIRECTORY qualifier provides additional  directories  to search  for  user-defined  include  files.   'path'  can  be either a logical name or a directory specification. There  are  two  forms  for  specifying  include  files  -   #include "file-spec"  and  #include <file-spec>.  For the #include "file-spec" form, the search order is:  1.  The directory containing the source file.  2.  The directories in the /INCLUDE qualifier (if any).  3.  The directory (or directories) specified in the logical name      GNU_CC_INCLUDE.  4.  The directory (or directories) specified in the logical name      SYS$LIBRARY.  For the #include <file-spec> form, the search order is:  1.  The directories specified in the /INCLUDE qualifier (if any).  2.  The directory (or directories) specified in the logical name      GNU_CC_INCLUDE.  3.  The directory (or directories) specified in the logical name      SYS$LIBRARY.2 /MACHINE_CODE Tells GNU C to output the machine code  generated  by  the  compiler. The  machine code is output to a file with the same name as the input file, with the extension .S.  An  object  file  is  still  generated, unless /NOOBJ is also specified.2 /OBJECT   /OBJECT[=filename]   /NOOBJECT        Controls whether or not an object file  is  generated  by  the compiler.2 /OPTIMIZE /[NO]OPTIMIZE Controls whether optimization  is  performed  by  the  compiler.   By default, optimization is on.  /NOOPTIMIZE turns optimization off.2 /PLUS Instructs the compiler driver to use the GNU-C++ compiler instead  of the  GNU-C compiler.  Note that the default extension of source files is .CC when this qualifier is in effect.2 /PROFILE /PROFILE[=identifier] Instructs the compiler to generate function profiling code.  You must link  your  program  to  the profiler when you use this options.  The profile statistics are automatically  printed  out  on  the  terminal during  image  exit.  (i.e.  no modifications to your source file are required in order to use the profiler). There are three identifiers  that  can  be  used  with  the  /PROFILE switch.   These  are  ALL, FUNCTION, and BLOCK.  If /PROFILE is given without an identifier, then FUNCTION is assumed.3 Block_Profiler The block profiler counts how  many  times  control  of  the  program passes certain points in your program.  This is useful in determining which  portions  of  a  program  would  benefit  from  recoding   for optimization. The report for the block profiler contains the  function  name,  file name, PC, and the source file line number as well as the count of how many times control has passed through the specified source line.3 Function_Profiler The function profiler counts how many times each function is entered, and keeps track of how much CPU time is used within each function. You should be careful about  interpreting  the  results  of  profiles where  there  are  inline  functions.  When a function is included as inline, then there is no call to the internal data collection routine used  by  the  profiler,  and  thus  there  will be no record of this function being called.  The compiler does generate a callable version of each inline function, and if this called version is used, then the profiler's data collection routine will be called.2 /SCAN /SCAN=(file[,file...]) This qualifier supplies a list of files that will be read  as  input, and  the output will be discarded before processing the regular input file.  Because the output generated from the files is discarded,  the only  effect  of  this qualifier is to make the macros defined in the files available for use in the main input.2 /SHOW /SHOW[=option] This causes the preprocessor to generate information other  than  the preprocessed  input  file.   When this qualifier is used, no assembly code and no object file is generated. The output of the preprocessor is placed in the file specified by the /LIST  qualifier, if present.  If the /LIST qualifier is not present, then the output is placed in a file with the same name as  the  input file  with  an  extension  that  depends  upon  which  option that is selected.3 DEFINITIONS This option causes the preprocessor to dump a  list  of  all  of  the definitions  to  the  output  file.   This  is  useful  for debugging purposes, since it lets you determine whether or not  everything  has been defined properly. If the default file name is used for the output, the  extension  will be .DEF.3 RULES This option causes the preprocessor to output  a  rule  suitable  for MAKE,  describing  the  dependencies  of  the  main source file.  The preprocessor outputs one MAKE rule containing the  object  file  name for  that  source  file,  a colon, and the names of all the concluded files.  If there are many included files then the rule is split  into several lines using the '\'-newline. When using this option, only files included with the "#include "file" directive are mentioned. If the default file name is used for the  output,  a  null  extension will be used.3 ALL This option is similar to RULES, except that it also  mentions  files included with the "#include <file.h>" directive. If the default file name is used for the  output,  a  null  extension will be used.2 /UNDEFINE /UNDEFINE cancels a macro definition.  Thus, it is the  same  as  the #undef preprocessor directive. If more than one /UNDEFINE is present on the GCC command  line,  only the last /UNDEFINE is used. If both /DEFINE and /UNDEFINE are present on a command line,  /DEFINE is evaluated before /UNDEFINE.2 /VERBOSE Controls whether the user sees the invocation command strings for the preprocessor,  compiler,  and  assembler.   The compiler also outputs some statistics on time spent in its various phases.2 /VERSION Causes the preprocessor and the compiler to  identify  themselves  by their  version  numbers, and in the case of the compiler, the version number of the compiler that built it.2 /WARNING When this qualifier is present, warnings about usage that  should  be avoided  are given by the compiler.  For more information, see "Using and Porting GNU CC", in the section on command  line  options,  under "-Wall". Warnings are also generated by the preprocessor when  this  qualifier is given.2 Known_Incompatibilities_with_VAX-C There are several known incompatibilities between  GNU-C  and  VAX-C. Some  common  ones  will  be  briefly  described  here.   A  complete description can be found in "Using and Porting GNU CC" in the chapter entitled "Using GNU CC on VMS".     GNU-C provides case hacking as a means of giving case sensitivity to  symbol  names.  The case hack is a hexadecimal number appended to the symbol name, with a bit being set for  each  upper  case  letter. Symbols with all lower case, or symbols that have a dollar sign ("$") are not case hacked.  There  are  times  that  this  is  undesirable, namely  when  you  wish  to  link  your program against a precompiled library which was compiled with a non-GNU-C compiler.  X-windows  (or DECWindows)   is  an  example  of  this.   In  these  instances,  the /NOCASE_HACK switch should be used. If you require case hacking in some cases, but not  in  others  (i.e. Libg++  with  DECWindows),  then it is recommended that you develop a header file which will define all mixed case  functions  that  should not have a case hack as the lower case equivalents.     GNU-C does not provide  the  globaldef  and  globalref  mechanism which  is  used  by VAX-C to coerce the VMS linker to include certain object modules from a library.  There are assembler hacks, which  are available  to  the  user  through  the macros defined in gnu_hacks.h, which effectively give you the ability to  perform  these  functions. While  not  syntactically  identical,  they  do  provide  most of the functionality. Note that globaldefs of enums is not supported in the way that it  is under  VAX-C.  This can be easily simulated, however, by globaldefing an integer variable, and then globalvaluing  all  of  the  enumerated states. Furthermore, the way that globalvalue is currently  implemented,  the data type of the globalvalue variable is seen to the compiler to be a pointer to the data type that you  specify.   This  is  necessary  in order   to  make  the  compiler  correctly  address  the  globalvalue variables.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -