<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2015 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, the Front-Cover texts being (a) (see below), and
with the Back-Cover Texts being (b) (see below).  A copy of the
license is included in the section entitled "GNU
Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Installing GCC</title>

<meta name="description" content="Installing GCC">
<meta name="keywords" content="Installing GCC">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<h1 class="settitle" align="center">Installing GCC</h1>























<a name="index-Binaries"></a>
<a name="index-Installing-GCC_003a-Binaries"></a>

<p>We are often asked about pre-compiled versions of GCC.  While we cannot
provide these for all platforms, below you&rsquo;ll find links to binaries for
various platforms where creating them by yourself is not easy due to various
reasons.
</p>
<p>Please note that we did not create these binaries, nor do we
support them.  If you have any problems installing them, please
contact their makers.
</p>
<ul>
<li> AIX:
<ul>
<li> <a href="http://www.bullfreeware.com">Bull&rsquo;s Freeware and Shareware Archive for AIX</a>;

</li><li> <a href="http://pware.hvcc.edu">Hudson Valley Community College Open Source Software for IBM System p</a>;

</li><li> <a href="http://www.perzl.org/aix/">AIX 5L and 6 Open Source Packages</a>.
</li></ul>

</li><li> DOS&mdash;<a href="http://www.delorie.com/djgpp/">DJGPP</a>.

</li><li> Renesas H8/300[HS]&mdash;<a href="http://h8300-hms.sourceforge.net/">GNU
Development Tools for the Renesas H8/300[HS] Series</a>.

</li><li> HP-UX:
<ul>
<li> <a href="http://hpux.connect.org.uk/">HP-UX Porting Center</a>;

</li><li> <a href="ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/">Binaries for HP-UX 11.00 at Aachen University of Technology</a>.
</li></ul>

</li><li> <a href="http://www.sco.com/skunkware/devtools/index.html#gcc">SCO
OpenServer/Unixware</a>.

</li><li> Solaris 2 (SPARC, Intel):
<ul>
<li> <a href="http://www.opencsw.org/">OpenCSW</a>

</li><li> <a href="http://jupiterrise.com/tgcware/">TGCware</a>
</li></ul>

</li><li> Microsoft Windows:
<ul>
<li> The <a href="http://sourceware.org/cygwin/">Cygwin</a> project;
</li><li> The <a href="http://www.mingw.org/">MinGW</a> project.
</li></ul>

</li><li> <a href="ftp://ftp.thewrittenword.com/packages/by-name/">The
Written Word</a> offers binaries for
AIX 4.3.3, 5.1 and 5.2,
GNU/Linux (i386),
HP-UX 10.20, 11.00, and 11.11, and
Solaris/SPARC 2.5.1, 2.6, 7, 8, 9 and 10.

</li><li> <a href="http://www.openpkg.org/">OpenPKG</a> offers binaries for quite a
number of platforms.

</li><li> The <a href="http://gcc.gnu.org/wiki/GFortranBinaries">GFortran Wiki</a> has
links to GNU Fortran binaries for several platforms.
</li></ul>

<hr />
<p><p><a href="./index.html">Return to the GCC Installation page</a>
</p>







</body>
</html>
