The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

c89 (1)
  • >> c89 (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • c89 (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • 
    NAME
         c89 - compile standard C programs
    
    SYNOPSIS
         c89 [-c] [-D name[=value]]...  [-E] [-g] [-I directory ]...
              [-L directory]...  [-o outfile] [-O] [-s]
              [-U name]... operand...
    
    DESCRIPTION
         The c89 utility is an interface to the standard  C  compila-
         tion  system;  it  will accept source code conforming to the
         ISO C standard.  The system conceptually consists of a  com-
         piler  and  link  editor.   The files referenced by operands
         will be compiled and linked to produce an executable file.
    
         If the -c option is specified, for all pathname operands  of
         the form file.c, the files:
    
              $(basename pathname .c).o
    
         will be created as the result of successful compilation.
    
         If there are no options that prevent link editing  (such  as
         -c  or -E), and all operands compile and link without error,
         the resulting executable file will be written  according  to
         the -o outfile option (if present) or to the file a.out.
    
         The file permissions for the executable file that is created
         are set to
    
              S_IRWXO | S_IRWXG | S_IRWXU
    
         and the bits specified by  the  umask  of  the  process  are
         cleared.
    
    OPTIONS
         The following affect the options for the c89 utility:
    
              o  The -l library operands have the format of  options,
                 but their position within a list of operands affects
                 the order in which libraries are searched.
    
              o  The order of specifying the -I  and  -L  options  is
                 significant.
    
              o  Portable  applications  must  specify  each   option
                 separately;  that  is,  grouping option letters (for
                 example, -cO) need not be recognized by  all  imple-
                 mentations.
    
    
    
         The following options are supported:
    
         -c             Suppress the link-edit phase of the  compila-
                        tion, and do not remove any object files that
                        are produced.
    
         -g             Produce symbolic information in the object or
                        executable files.
    
         -s             Produce object or executable files, or  both,
                        from which symbolic and other information not
                        required for proper execution using the  exec
                        family  has been removed (stripped).  If both
                        -g and -s options are present,  -s  overrides
                        -g.
    
         -o outfile     Use the  pathname  outfile,  instead  of  the
                        default  a.out,  for the executable file pro-
                        duced.  This option cannot be used with -c or
                        -E.
    
         -D name[=value]
                        Define name as if  by  a  C-language  #define
                        directive.  If no =value is given, a value of
                        1 will be used.  The -D option has lower pre-
                        cedence  than the -U option; that is, if name
                        is used in both a -U and a  -D  option,  name
                        will  be undefined regardless of the order of
                        the options.   c89  supports  at  least  2048
                        bytes of -D definitions and 256 names.
    
                        The following predefined names are  valid  in
                        all modes:
                             __sparc (SPARC)
                             __i386 (x86)
                             __unix
                             __sun
                             __BUILTIN_VA_ARG_INCR
                             __SUNPRO_C=0x500
                             __SVR4
    
                        The following names are not predefined in -Xc
                        mode:
                             unix
                             sparc (SPARC)
                             i386 (x86)
                             sun
    
         -E             Copy C-language source files to standard out-
                        put,  expanding  all preprocessor directives;
                        no compilation will be performed.  An
    
                        error will occur if any operand is not a text
                        file.
    
         -I directory   Change  the  algorithm  for   searching   for
                        headers  whose  names  are not absolute path-
                        names to look in the directory named  by  the
                        directory  path  name  before  looking in the
                        usual places.  Thus, headers whose names  are
                        enclosed   in   double-quotes  ("")  will  be
                        searched for first in the  directory  of  the
                        file  with  the #include line, then in direc-
                        tories named in -I options, and last  in  the
                        usual  places.   For  headers whose names are
                        enclosed in angle brackets (<>),  the  header
                        will  be  searched  for  only  in directories
                        named in -I options and  then  in  the  usual
                        places.  Directories named in -I options will
                        be searched in the order specified.
    
         -L directory   Change the algorithm  of  searching  for  the
                        libraries  named in the -l objects to look in
                        the directory named  by  the  directory  path
                        name  before  looking  in  the  usual places.
                        Directories  named  in  -L  options  will  be
                        searched in the order specified.
    
         -O             Optimize.
    
         -U name        Remove any initial definition of name.
    
         Multiple instances of the -D, -I, -U, and -L options can  be
         specified.
    
    OPERANDS
         An operand is either in the form of a path name or the  form
         -l library.  At least one operand of the path name form must
         be specified.  The following operands are supported:
    
         file.c         A C-language source file to be  compiled  and
                        optionally  linked.   The  operand must be of
                        this form if the -c option is used.
    
         file.a         A library of object files typically  produced
                        by  the ar(1) utility, and passed directly to
                        the link editor.
    
         file.o         An object file produced by c89 -c and  passed
                        directly to the link editor.
    
    
    
         -l library     (The letter ell.)  Search the library named:
    
                             liblibrary.a
    
                        A library will be searched when its  name  is
                        encountered, so the placement of a -l operand
                        is significant.  Several  standard  libraries
                        can  be  specified in this manner.  See Stan-
                        dard Libraries in NOTES below.
    
    USAGE
         Since the c89 utility usually creates files in  the  current
         directory  during  the  compilation process, it is typically
         necessary to run the c89 utility in a directory in  which  a
         file can be created.
    
         c89 creates .o files when -c is not specified and more  than
         one source file is given.
    
         Some historical implementations have permitted -L options to
         be  interspersed  with -l operands on the command line.  For
         an application to compile consistently on  systems  that  do
         not  behave like this, it is necessary for a portable appli-
         cation to supply  all  -L  options  before  any  of  the  -l
         options.
    
         There is the possible implication that if  a  user  supplies
         versions  of  the  standard  library  functions (before they
         would be encountered by an implicit -l c or explicit -l  m),
         that  those  versions would be used in place of the standard
         versions.  There are various reasons this might not be  true
         (functions  defined  as macros, manipulations for clean name
         space, and so forth), so the existence of files named in the
         same  manner  as the standard libraries within the -L direc-
         tories is explicitly stated to produce unspecified behavior.
    
         Setting  the  environment  variable  TMPDIR  overrides   the
         default temporary directory.
    
    OUTPUT
      STDOUT
         If more than one file operand ending in  .c  is  given,  for
         each such file:
    
              "%s:\n", <file>
    
         may be written.  These messages, if  written,  will  precede
         the  processing of each input file; they will not be written
         to the standard output if they are written to  the  standard
         error, as described in STDERR.
    
    
         If the -E option is specified, the standard output will be a
         text  file  that represents the results of the preprocessing
         stage of the language;  it  may  contain  extra  information
         appropriate for subsequent compilation passes.
    
      STDERR
         Used only for diagnostic messages.  If more  than  one  file
         operand  ending  in  .c  (or possibly other unspecified suf-
         fixes) is given, for each such file:
    
              "%s:\n", <file>
    
         may be written to allow identification of the diagnostic and
         warning  messages  with  the  appropriate input file.  These
         messages, if written, will precede the  processing  of  each
         input  file;  they will not be written to the standard error
         if they are written to the standard output, as described  in
         STDOUT.
    
    ENVIRONMENT
         See environ(5) for descriptions of the following environment
         variables  that  affect  the  execution  of  c89:   LC_TYPE,
         LC_MESSAGES, and NLSPATH.
    
         TMPDIR         Provide a path name that  will  override  the
                        default  directory  for  temporary  files, if
                        any.
    
    EXIT STATUS
         The following exit values are returned:
    
         0   Successful compilation or link edit.
    
         >0  An error occurred.
    
         When c89 encounters  a  compilation  error  that  causes  an
         object file not to be created, it will write a diagnostic to
         standard error and continue to  compile  other  source  code
         operands,  but  it  will not perform the link phase and will
         return a non-zero exit status.  If the link edit  is  unsuc-
         cessful,  a  diagnostic  message will be written to standard
         error and c89 will exit with a non-zero status.  A  portable
         application must rely on the exit status of c89, rather than
         on the existence or mode of the executable file.
    
    EXAMPLES
         The following are examples of usage:
    
         c89 -o foo foo.c        Compiles foo.c and creates the  exe-
                                 cutable file foo.
    
    
         c89 -c foo.c            Compiles  foo.c  and   creates   the
                                 object file foo.o.
    
         c89 foo.c               Compiles foo.c and creates the  exe-
                                 cutable file a.out.
    
         c89 foo.c bar.o         Compiles foo.c, links it with bar.o,
                                 and   creates  the  executable  file
                                 a.out.   Also  creates  and   leaves
                                 foo.o.
    
         The following examples clarify the use and  interactions  of
         -L  options  and  -l  operands:   Consider the case in which
         module a.c calls function f in library  libQ.a,  and  module
         b.c  calls  function  g in library libp.a.  Assume that both
         libraries reside in /a/b/c.  The command line to compile and
         link in the desired way is:
    
              c89 -L /a/b/c main.o a.c -l Q b.c -l p
    
         In this case the -l Q operand need only precede the first -l
         p  operand,  since both libQ.a and libp.a reside in the same
         directory.
         Multiple -L operands can be used when  library  name  colli-
         sions occur.  Building on the previous example, suppose that
         the user wants to use a new libp.a,  in  /a/a/a,  but  still
         wants f from /a/b/c/libQ.a:
    
              c89 -L /a/a/a -L /a/b/c main.o a.c -l Q b.c -l p
    
         In this example, the linker searches the -L options  in  the
         order    specified,    and    finds   /a/a/a/libp.a   before
         /a/b/c/libp.a when resolving references for b.c.  The  order
         of the -l operands is still important, however.
    
    SEE ALSO
         ar(1), cc(1B), nm(1), strip(1), umask(1), environ(5)
    
    NOTES
      Standard Libraries
         The c89 utility recognizes the  following  -l  operands  for
         standard libraries:
    
         -l c        This  library  contains  all  library  functions
                     except for those functions listed as residing in
                     <math.h>.  This operand is not  required  to  be
                     present to cause a search of this library.
    
         -l m        This library contains all  functions  referenced
                     in  math.h.   An  implementation may search this
                     library in the absence of this operand.
    
         -l l        This library contains all functions required  by
                     the  C-language  output of lex that are not made
                     available through the -l c operand.
    
         -l y        This library contains all functions required  by
                     the  C-language output of yacc that are not made
                     available through the -l c operand.
    
         In the absence of options that  inhibit  invocation  of  the
         link  editor,  such  as -c or -E, the c89 utility will cause
         the equivalent of a -l c operand to be passed  to  the  link
         editor  as  the  last  -l operand, causing it to be searched
         after all other object files and libraries are loaded.
    
      External Symbols
         The C compiler and link editor support the  significance  of
         external symbols up to a length of at least 31 bytes.
    
         The compiler and link editor support a minimum of 511 exter-
         nal symbols per source or object file, and a minimum of 4095
         external symbols in total.  A  diagnostic  message  will  be
         written to the standard output if the limit is exceeded.
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру