home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / gcc-2.3.3-src.lha / GNU / src / amiga / gcc-2.3.3 / gcc.info-3 (.txt) < prev    next >
GNU Info File  |  1994-02-06  |  49KB  |  951 lines

  1. This is Info file gcc.info, produced by Makeinfo-1.49 from the input
  2. file gcc.texi.
  3.    This file documents the use and the internals of the GNU compiler.
  4.    Copyright (C) 1988, 1989, 1992 Free Software Foundation, Inc.
  5.    Permission is granted to make and distribute verbatim copies of this
  6. manual provided the copyright notice and this permission notice are
  7. preserved on all copies.
  8.    Permission is granted to copy and distribute modified versions of
  9. this manual under the conditions for verbatim copying, provided also
  10. that the sections entitled "GNU General Public License" and "Protect
  11. Your Freedom--Fight `Look And Feel'" are included exactly as in the
  12. original, and provided that the entire resulting derived work is
  13. distributed under the terms of a permission notice identical to this
  14.    Permission is granted to copy and distribute translations of this
  15. manual into another language, under the above conditions for modified
  16. versions, except that the sections entitled "GNU General Public
  17. License" and "Protect Your Freedom--Fight `Look And Feel'", and this
  18. permission notice, may be included in translations approved by the Free
  19. Software Foundation instead of in the original English.
  20. File: gcc.info,  Node: Link Options,  Next: Directory Options,  Prev: Assembler Options,  Up: Invoking GCC
  21. Options for Linking
  22. ===================
  23.    These options come into play when the compiler links object files
  24. into an executable output file.  They are meaningless if the compiler is
  25. not doing a link step.
  26. `OBJECT-FILE-NAME'
  27.      A file name that does not end in a special recognized suffix is
  28.      considered to name an object file or library.  (Object files are
  29.      distinguished from libraries by the linker according to the file
  30.      contents.)  If linking is done, these object files are used as
  31.      input to the linker.
  32.      If any of these options is used, then the linker is not run, and
  33.      object file names should not be used as arguments.  *Note Overall
  34.      Options::.
  35. `-lLIBRARY'
  36.      Search the library named LIBRARY when linking.
  37.      It makes a difference where in the command you write this option;
  38.      the linker searches processes libraries and object files in the
  39.      order they are specified.  Thus, `foo.o -lz bar.o' searches
  40.      library `z' after file `foo.o' but before `bar.o'.  If `bar.o'
  41.      refers to functions in `z', those functions may not be loaded.
  42.      The linker searches a standard list of directories for the library,
  43.      which is actually a file named `libLIBRARY.a'.  The linker then
  44.      uses this file as if it had been specified precisely by name.
  45.      The directories searched include several standard system
  46.      directories plus any that you specify with `-L'.
  47.      Normally the files found this way are library files--archive files
  48.      whose members are object files.  The linker handles an archive
  49.      file by scanning through it for members which define symbols that
  50.      have so far been referenced but not defined.  But if the file that
  51.      is found is an ordinary object file, it is linked in the usual
  52.      fashion.  The only difference between using an `-l' option and
  53.      specifying a file name is that `-l' surrounds LIBRARY with `lib'
  54.      and `.a' and searches several directories.
  55. `-lobjc'
  56.      This special case of the `-l' option is what you need to do when
  57.      you link an Objective C program.
  58. `-nostdlib'
  59.      Don't use the standard system libraries and startup files when
  60.      linking. Only the files you specify will be passed to the linker.
  61. `-static'
  62.      On systems that support dynamic linking, this prevents linking
  63.      with the shared libraries.  On other systems, this option has no
  64.      effect.
  65. `-shared'
  66.      Produce a shared object which can then be linked with other
  67.      objects to form an executable.  Only a few systems support this
  68.      option.
  69. `-symbolic'
  70.      Bind references to global symbols when building a shared object. 
  71.      Warn about any unresolved references (unless overridden by the
  72.      link editor option `-Xlinker -z -Xlinker defs').  Only a few
  73.      systems support this option.
  74. `-Xlinker OPTION'
  75.      Pass OPTION as an option to the linker.  You can use this to
  76.      supply system-specific linker options which GNU CC does not know
  77.      how to recognize.
  78.      If you want to pass an option that takes an argument, you must use
  79.      `-Xlinker' twice, once for the option and once for the argument.
  80.      For example, to pass `-assert definitions', you must write
  81.      `-Xlinker -assert -Xlinker definitions'.  It does not work to write
  82.      `-Xlinker "-assert definitions"', because this passes the entire
  83.      string as a single argument, which is not what the linker expects.
  84. `-Wl,OPTION'
  85.      Pass OPTION as an option to the linker.  If OPTION contains
  86.      commas, it is split into multiple options at the commas.
  87. `-u SYMBOL'
  88.      Pretend the symbol SYMBOL is undefined, to force linking of
  89.      library modules to define it.  You can use `-u' multiple times with
  90.      different symbols to force loading of additional library modules.
  91. File: gcc.info,  Node: Directory Options,  Next: Target Options,  Prev: Link Options,  Up: Invoking GCC
  92. Options for Directory Search
  93. ============================
  94.    These options specify directories to search for header files, for
  95. libraries and for parts of the compiler:
  96. `-IDIR'
  97.      Append directory DIR to the list of directories searched for
  98.      include files.
  99. `-I-'
  100.      Any directories you specify with `-I' options before the `-I-'
  101.      option are searched only for the case of `#include "FILE"'; they
  102.      are not searched for `#include <FILE>'.
  103.      If additional directories are specified with `-I' options after
  104.      the `-I-', these directories are searched for all `#include'
  105.      directives.  (Ordinarily *all* `-I' directories are used this way.)
  106.      In addition, the `-I-' option inhibits the use of the current
  107.      directory (where the current input file came from) as the first
  108.      search directory for `#include "FILE"'.  There is no way to
  109.      override this effect of `-I-'.  With `-I.' you can specify
  110.      searching the directory which was current when the compiler was
  111.      invoked.  That is not exactly the same as what the preprocessor
  112.      does by default, but it is often satisfactory.
  113.      `-I-' does not inhibit the use of the standard system directories
  114.      for header files.  Thus, `-I-' and `-nostdinc' are independent.
  115. `-LDIR'
  116.      Add directory DIR to the list of directories to be searched for
  117.      `-l'.
  118. `-BPREFIX'
  119.      This option specifies where to find the executables, libraries and
  120.      data files of the compiler itself.
  121.      The compiler driver program runs one or more of the subprograms
  122.      `cpp', `cc1', `as' and `ld'.  It tries PREFIX as a prefix for each
  123.      program it tries to run, both with and without `MACHINE/VERSION/'
  124.      (*note Target Options::.).
  125.      For each subprogram to be run, the compiler driver first tries the
  126.      `-B' prefix, if any.  If that name is not found, or if `-B' was
  127.      not specified, the driver tries two standard prefixes, which are
  128.      `/usr/lib/gcc/' and `/usr/local/lib/gcc-lib/'.  If neither of
  129.      those results in a file name that is found, the unmodified program
  130.      name is searched for using the directories specified in your
  131.      `PATH' environment variable.
  132.      `-B' prefixes that effectively specify directory names also apply
  133.      to libraries in the linker, because the compiler translates these
  134.      options into `-L' options for the linker.
  135.      The run-time support file `libgcc.a' can also be searched for using
  136.      the `-B' prefix, if needed.  If it is not found there, the two
  137.      standard prefixes above are tried, and that is all.  The file is
  138.      left out of the link if it is not found by those means.
  139.      Another way to specify a prefix much like the `-B' prefix is to use
  140.      the environment variable `GCC_EXEC_PREFIX'.  *Note Environment
  141.      Variables::.
  142. File: gcc.info,  Node: Target Options,  Next: Submodel Options,  Prev: Directory Options,  Up: Invoking GCC
  143. Specifying Target Machine and Compiler Version
  144. ==============================================
  145.    By default, GNU CC compiles code for the same type of mac