• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/share/doc/arm-arm-none-eabi/html/gcc/
1<html lang="en">
2<head>
3<title>G++ and GCC - Using the GNU Compiler Collection (GCC)</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="Using the GNU Compiler Collection (GCC)">
6<meta name="generator" content="makeinfo 4.13">
7<link title="Top" rel="start" href="index.html#Top">
8<link rel="prev" href="index.html#Top" title="Top">
9<link rel="next" href="Standards.html#Standards" title="Standards">
10<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
11<!--
12Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
131998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
142010 Free Software Foundation, Inc.
15
16Permission is granted to copy, distribute and/or modify this document
17under the terms of the GNU Free Documentation License, Version 1.3 or
18any later version published by the Free Software Foundation; with the
19Invariant Sections being ``Funding Free Software'', the Front-Cover
20Texts being (a) (see below), and with the Back-Cover Texts being (b)
21(see below).  A copy of the license is included in the section entitled
22``GNU Free Documentation License''.
23
24(a) The FSF's Front-Cover Text is:
25
26     A GNU Manual
27
28(b) The FSF's Back-Cover Text is:
29
30     You have freedom to copy and modify this GNU Manual, like GNU
31     software.  Copies published by the Free Software Foundation raise
32     funds for GNU development.-->
33<meta http-equiv="Content-Style-Type" content="text/css">
34<style type="text/css"><!--
35  pre.display { font-family:inherit }
36  pre.format  { font-family:inherit }
37  pre.smalldisplay { font-family:inherit; font-size:smaller }
38  pre.smallformat  { font-family:inherit; font-size:smaller }
39  pre.smallexample { font-size:smaller }
40  pre.smalllisp    { font-size:smaller }
41  span.sc    { font-variant:small-caps }
42  span.roman { font-family:serif; font-weight:normal; } 
43  span.sansserif { font-family:sans-serif; font-weight:normal; } 
44--></style>
45<link rel="stylesheet" type="text/css" href="../cs.css">
46</head>
47<body>
48<h1 class="settitle">Using the GNU Compiler Collection (GCC)</h1>
49<div class="node">
50<a name="G++-and-GCC"></a>
51<a name="G_002b_002b-and-GCC"></a>
52<p>
53Next:&nbsp;<a rel="next" accesskey="n" href="Standards.html#Standards">Standards</a>,
54Previous:&nbsp;<a rel="previous" accesskey="p" href="index.html#Top">Top</a>,
55Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
56<hr>
57</div>
58
59<h2 class="chapter">1 Programming Languages Supported by GCC</h2>
60
61<p><a name="index-GCC-2"></a><a name="index-GNU-Compiler-Collection-3"></a><a name="index-GNU-C-Compiler-4"></a><a name="index-Ada-5"></a><a name="index-Fortran-6"></a><a name="index-Go-7"></a><a name="index-Java-8"></a><a name="index-Objective_002dC-9"></a><a name="index-Objective_002dC_002b_002b-10"></a>GCC stands for &ldquo;GNU Compiler Collection&rdquo;.  GCC is an integrated
62distribution of compilers for several major programming languages.  These
63languages currently include C, C++, Objective-C, Objective-C++, Java,
64Fortran, Ada, and Go.
65
66 <p>The abbreviation <dfn>GCC</dfn> has multiple meanings in common use.  The
67current official meaning is &ldquo;GNU Compiler Collection&rdquo;, which refers
68generically to the complete suite of tools.  The name historically stood
69for &ldquo;GNU C Compiler&rdquo;, and this usage is still common when the emphasis
70is on compiling C programs.  Finally, the name is also used when speaking
71of the <dfn>language-independent</dfn> component of GCC: code shared among the
72compilers for all supported languages.
73
74 <p>The language-independent component of GCC includes the majority of the
75optimizers, as well as the &ldquo;back ends&rdquo; that generate machine code for
76various processors.
77
78 <p><a name="index-COBOL-11"></a><a name="index-Mercury-12"></a><a name="index-Pascal-13"></a>The part of a compiler that is specific to a particular language is
79called the &ldquo;front end&rdquo;.  In addition to the front ends that are
80integrated components of GCC, there are several other front ends that
81are maintained separately.  These support languages such as Pascal,
82Mercury, and COBOL.  To use these, they must be built together with
83GCC proper.
84
85 <p><a name="index-C_002b_002b-14"></a><a name="index-G_002b_002b-15"></a><a name="index-Ada-16"></a><a name="index-GNAT-17"></a>Most of the compilers for languages other than C have their own names. 
86The C++ compiler is G++, the Ada compiler is GNAT, and so on.  When we
87talk about compiling one of those languages, we might refer to that
88compiler by its own name, or as GCC.  Either is correct.
89
90 <p><a name="index-compiler-compared-to-C_002b_002b-preprocessor-18"></a><a name="index-intermediate-C-version_002c-nonexistent-19"></a><a name="index-C-intermediate-output_002c-nonexistent-20"></a>Historically, compilers for many languages, including C++ and Fortran,
91have been implemented as &ldquo;preprocessors&rdquo; which emit another high
92level language such as C.  None of the compilers included in GCC are
93implemented this way; they all generate machine code directly.  This
94sort of preprocessor should not be confused with the <dfn>C
95preprocessor</dfn>, which is an integral feature of the C, C++, Objective-C
96and Objective-C++ languages.
97
98<!-- Copyright (C) 2000, 2001, 2002, 2004, 2006, 2007, 2008, 2010, 2011 -->
99<!-- Free Software Foundation, Inc. -->
100<!-- This is part of the GCC manual. -->
101<!-- For copying conditions, see the file gcc.texi. -->
102 </body></html>
103
104