<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Configuring the NetBeans IDE for C/C++/Fortran - NetBeans IDE 6.9</title>
<meta name="DESCRIPTION" content="Configuring the NetBeans IDE for C/C++/Fortran - NetBeans IDE 6.9">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">

</head>
<body>
<a name="top"></a>

<h1>Configuring the NetBeans IDE for C/C++/Fortran</h1>
<!-- START INTRO ---------------------------------------------------------------------------------------* -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">


June 2010</em> [Revision number: V6.9-1]</div>
<p>This document provides
information about downloading, installing, and configuring C/C++ support in the
NetBeans IDE.  Before you can develop in C/C++, the NetBeans IDE requires the
C/C++ plugin module, and third party C/C++ compilers, <code>make</code> utilities, and
debuggers.
</p>

<!-- END INTRO -->
<h3>Contents</h3>
<img src="../../../images_www/articles/69/netbeans-stamp.gif" class="stamp"
alt="Content on this page applies to NetBeans IDE 6.9"
title="Content on this page applies to the NetBeans IDE 6.9">
    <ul class="toc">
        <li><a href="#downloading" title="Enabling C/C++/Fortran in the IDE">
            Enabling C/C++/Fortran in the IDE</a></li>
        <li><a href="#compilers" title="Installing and Setting Up the Compilers and Tools">Installing and Setting Up the Compilers and Tools</a></li>
        <li><a href="#verifying" title="Verifying the Installation">Verifying the
      Installation</a></li>
      <li><a href="#ts" title="Troubleshooting Tool Issues">Troubleshooting Tool Issues</a></li>

    </ul>


 <p><b>To follow this tutorial, you need the following software and resources.</b></p>

    <table>
        <tbody>

            <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Required</th>
            </tr>
           <tr>
<td class="tbltd1">NetBeans IDE</td>
<td class="tbltd1"><a
href="https://netbeans.org/downloads/index.html">version 6.9 with NetBeans C/C++ plugin</a></td>
</tr>
<tr>
<td class="tbltd1">Java Developer Kit (JDK)</td>
<td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">version 6</a></td>
</tr>
        </tbody>
</table>



<br>
<!-- DOWNLOADING ---------------------------------------------------------->
<h2><a name="downloading">Enabling C/C++/Fortran in the IDE</a></h2>
<p>
The NetBeans IDE is a dynamic modular IDE, which means you can change it by
adding and removing modules of the program. You can add functionality by
installing plugin modules, or remove functionality by uninstalling plugin modules.
See the NetBeans IDE online help for more information about plugins.</p>
<p>
If you want to work with C, C++, or Fortran programs in the NetBeans IDE,
your NetBeans installation must include the C/C++ plugin.</p>
<p class="tips">Although the plugin is named C/C++, it also includes support for Fortran
programming.</p>

<h3>If you have not yet installed NetBeans IDE 6.9</h3>
<p>If you have not yet
installed the NetBeans IDE, download either the <b>C/C++</b> bundle or the
<b>All</b> bundle from  <a href="http://download.netbeans.org/">NetBeans IDE
6.9 Download Page</a>. If you will not be using other languages such as Java and Ruby,
you should download the C/C++ bundle.</p>

<h3>If you have NetBeans IDE 6.9 but do not know if you have the C/C++ plugin</h3>
<p>If you already have NetBeans IDE, determine if your NetBeans IDE includes the
C/C++ plugin already, by selecting File &gt; New Project.
If C/C++ is listed as one of the Categories, you have the C/C++ plugin module.
You should skip to the section <a href="#compilers">Installing and Setting Up the Compilers and Tools</a>.
</p>

<h3>If you have NetBeans IDE 6.9 without the C/C++ plugin</h3>
<p>If your NetBeans IDE does not show a C/C++ project category when you select
 File &gt; New Project, complete the
following steps to add the C/C++ plugin module to the IDE.</p>
<ol>
    <li>If your network uses a proxy, choose Tools &gt; Options &gt; General in the IDE,
        select Manual Proxy Settings, enter the HTTP Proxy and Port for
    your proxy, and click OK.</li>
    <li>Choose Tools &gt; Plugins.</li>

    <li>In the Plugins dialog box, click the Available Plugins tab,
        and scroll to the C/C++ category.
    </li>
    <li>Select the C/C++ checkbox and click Install to start the NetBeans IDE Installer.</li>
    <li>In the NetBeans IDE Installer, click Next.</li>
    <li>Read the license agreement, select the checkbox to accept the terms
    of the license agreement, and click Next.</li>
    <li>Click Install.</li>
    <li>After the installation completes, select either Restart IDE Now or Restart
    IDE Later and click Finish.</li>
</ol>

 
       
        
<!-- COMPILER SETUP ------------------------------------------------------->
<h2><a name="compilers">Installing and Setting Up the Compilers and Tools</a></h2>
<p>The Netbeans C/C++ module requires a C compiler, C++ compiler,
<tt>make</tt> utility, and <tt>gdb</tt> debugger.  See the following instructions for
the platform of your development system.
</p>
<table class="b-none" cellpadding="0" cellspacing="0" class="vatop">
<tr>
      <td class="hyphen">-&nbsp;</td>
      <td><a href="#compilers_windows" title="Windows Platform">Windows</a></td>
   </tr>
   <tr>
      <td>-&nbsp;</td>
      <td><a href="#compilers_solaris" title="Solaris Platform">Solaris OS</a></td>
   </tr>
   <tr>
      <td>-&nbsp;</td>
      <td><a href="#compilers_opensolaris" title="OpenSolaris Platform">OpenSolaris OS</a></td>
   </tr>
   <tr>
      <td>-&nbsp;</td>
      <td><a href="#compilers_linux" title="Linux Platforms">Linux</a>
      </td>
   </tr>
    <tr>
      <td>-&nbsp;</td>
      <td><a href="#compilers_mac" title="Macintosh OS X">Macintosh OS X</a>
      </td>
   </tr>
   
</table>



<!-- COMPILER SETUP: WINDOWS ---------------------------------------------->
<!--<blockquote>-->
<h3><a name="compilers_windows"></a>Windows</h3>
<p>The NetBeans C/C++ module has been tested with compilers from Cygwin and
MinGW. If you install both Cygwin and MinGW, be careful to keep their installation
locations completely separate and do not mix tools from Cygwin and MinGW in
one tool collection in the IDE.</p>
<p class="notes">If you want to use Qt with Windows, you must use MinGW, which is
    included in the Qt SDK. You should not install MinGW separately.</p>

<table>
<tr>
      <td>-&nbsp;</td>
      <td><a href="#cygwin" title="Cygwin Compilers and Tools">Cygwin Compilers and Tools</a></td>
   </tr>
   <tr>
      <td>-&nbsp;</td>
      <td><a href="#mingw" title="MinGW Compilers and Tools">MinGW Compilers and Tools</a></td>
   </tr>
</table>

<h4><a name="cygwin"></a>Cygwin Compilers and Tools</h4>

<p>The NetBeans C/C++ module has been tested with the following compilers
and tools from <a href="http://cygwin.com" target="_blank">Cygwin.com</a>.</p>

<table>
  <tbody>

           <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Tested</th>
                <th class="tblheader" scope="col">Description</th>
            </tr>
            <tr>
                <td class="tbltd1"><tt>cygwin1.dll</tt></td>
                <td class="tbltd1">1.7.2</td>
                <td class="tbltd1">Cygwin Linux-like environment for Windows</td>

            </tr>
        
        <tr>
            <td class="tbltd1"><tt>gcc</tt></td>
            <td class="tbltd1">3.4.4</td>
            <td class="tbltd1">Cygwin C compiler</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>g++</tt></td>
            <td class="tbltd1">3.4.4</td>
            <td class="tbltd1">Cygwin C++ compiler</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gdb</tt></td>
            <td class="tbltd1">6.8</td>
            <td class="tbltd1">Cygwin GNU debugger</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>make</tt></td>
            <td class="tbltd1">3.81</td>
            <td class="tbltd1">Cygwin make utility</td>

        </tr>
    </tbody>
</table>
<br>
<p>If you already have the Cygwin gcc and g++ compilers, GNU <tt>make</tt>, and
<tt>gdb</tt> debugger installed on your Windows system and
your path is set up correctly to find them, make sure that you have the
correct versions.
</p>

<p><b>To check the versions of your Cygwin compilers and tools:</b></p>
<ol>
<li>
<p>Check the version of Cygwin environment by typing the following commands at a Windows command prompt:</p>
<pre class="examplecode">
 C:\&gt; cygcheck -c cygwin
</pre>
</li>
<li>Check the versions of the Cygwin gcc and g++ compilers, <tt>make</tt>, and <tt>gdb</tt> by
typing the following commands at a Windows command prompt:
<pre class="examplecode">
C:\&gt; gcc --version
C:\&gt; g++ --version
C:\&gt; make --version
C:\&gt; gdb --version
</pre>
</li>
</ol>
<p>
 If you have the correct versions, then no further setup is
necessary. See <a href="#verifying">Verifying the Installation</a> to verify that
the tools are installed correctly for the NetBeans IDE.</p>

<p><b>To install the GNU gcc and g++ compilers, <tt>make</tt>, and <tt>gdb</tt> debugger from
<a href="http://cygwin.com" target="blank">cygwin.com</a>:</b></p>
<ol>
    <li>Refer to the <a href="http://http://cygwin.com/cygwin-ug-net/index.html" target="_blank">Cygwin User's Guide</a> for
    complete information about installing and using Cygwin.</li>
<li>Download the Cygwin <tt>setup.exe</tt> program by clicking the Install Cygwin Now
	icon at the top right of the page, or by clicking this direct
    <a href="http://www.cygwin.com/setup.exe">
	<tt>setup.exe</tt></a> link.
	</li>

	 <li>
	Run the <tt>setup.exe</tt> program. Accept the defaults until you reach
	the Select Your Internet Connection page. Select the option on this
	page that is best for you. Click Next.
   </li>
    <li>
	On the Choose Download Site page, choose a download site you think
	might be relatively close to you. Click Next.
    </li>
    <li>
	On the Select Packages page you select the packages to download. Click 
	the + next to Devel to expand the development tools category. You may 
	want to resize the window so you can see more of it at one time.
    </li>
    <li>
	Select each package you want to download by clicking the Skip label
	next to it, which reveals the version number of the package to download.
        At a minimum, select
        <ul><li>gcc-core: C compiler
            </li>
            <li>gcc-g++: C++ compiler
            </li>
            <li>gdb: The GNU Debugger
            </li>
            <li>make: the GNU version of the 'make' utility
            </li>
        </ul>
	Packages that are required by the packages you
    select are automatically selected as well.
	</li>
    <li>Click Next to connect to the download site and download the packages you
    selected, and click Finish when the installation is complete.</li>
    <li>
        Now add the Cygwin compiler directory to your path to enable NetBeans IDE
        to find the tools collection:
       <br><br>
        <ol type="a">
        <li>Open the Control Panel:<br>
            - On Windows XP select Start &gt; Settings &gt; Control Panel) and
            double-click System. <br>
            - On Windows 7, type <b>var</b> in the Start menu's
        search box to quickly find a link to Edit the system environment variables.</li>
        <li>Select the Advanced tab and click Environment Variables.</li>
        <li>In the System Variables panel of the Environment Variables dialog, 
        select the <tt>Path</tt> variable and
        click Edit.</li>
        <li>Add the path to the
        <tt><i>cygwin-directory</i>\bin</tt> directory to the <tt>Path</tt> variable, and
        click OK. By default, <tt><i>cygwin-directory</i></tt> is 
        <tt>C:\cygwin</tt>. Directory names must be separated with a semicolon.
        Your edited path should look something like
        <tt>%SystemRoot%\system32;%SystemRoot%;C:\Program Files\QuickTime\QTSystem;C:\cygwin\bin</tt></li>
        <li>Click OK in the Environment Variables dialog and the System 
        Properties dialog.
        </li>
        <li>See <a href="#verifying">Verifying the Installation</a> to verify that the tools were installed correctly
for the NetBeans IDE.</li>
        </ol>
	
    </li>
    </ol>

    <!-- MinGW installation -->

        <h4><a name="mingw"></a>MinGW Compilers and Tools</h4>
        <p>NetBeans IDE 6.9 was tested with Minimalist GNU for Windows (MinGW) and the Minimal System (MSYS)
        Unix-like environment. Versions tested and installation instructions are shown below.</p>

        <p class="notes margin-around">If you want to use Qt with Windows, you should use the version of MinGW
            <br>that is included in the Qt SDK instead of installing MinGW separately.</p>
 
        <table>
  <tbody>

           <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Tested</th>
                <th class="tblheader" scope="col">Description</th>
            </tr>


        <tr>
            <td class="tbltd1"><tt>gcc</tt></td>
            <td class="tbltd1">3.4.5</td>
            <td class="tbltd1">MinGW C compiler</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>g++</tt></td>
            <td class="tbltd1">3.4.5</td>
            <td class="tbltd1">MinGW C++ compiler</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gdb</tt></td>
            <td class="tbltd1">6.8</td>
            <td class="tbltd1">MinGW GNU debugger</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>make</tt></td>
            <td class="tbltd1">3.79.1</td>
            <td class="tbltd1">MSYS <tt>make</tt> utility<br>
                Note that MinGW make is not supported</td>

        </tr>
    </tbody>
</table>
<br>
<p><b>To install the GNU compilers, <tt>make</tt>, and <tt>gdb</tt> debugger from
<a href="http://mingw.org" target="_blank">mingw.org</a>:</b></p>
<ol>
    <li>Log in to Windows using an account with &quot;computer administrator&quot; privileges.
    </li>
    <li>Download the self-extracting installer from
    <a href="http://mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite">
        How To Install the MinGW (GCC) Compiler Suite</a> on mingw.org or for convenience you
        can download from this
<a href="http://sourceforge.net/project/downloading.php?group_id=2435&filename=MinGW-5.1.4.exe&a=57946486">direct link to MinGW-5.1.4.exe</a>.
        </li>
        <li>Run the MinGW-5.1.4.exe installer in Windows.</li>
        <li>In the MinGW installer, accept the defaults until you get to the Choose Components page.</li>
        <li>On the Choose Components page, select the g++ compiler. The gcc compiler is automatically
        included in the installation so it is not a selectable component.</li>
        <li>Do not select MinGW make, as you need to use the make from MSYS instead,
        which is downloaded separately.  Click Next.</li>
        <li>Use the default <tt>C:\MinGW</tt> as the destination folder if possible to minimize any potential difficulty with using
        the compilers from another location.</li>
        <li>Click Install to install the MinGW tools, then click Next, then click Finish.</li>
        <li>Add the <tt>C:\MinGW\bin</tt> directory to your path, as described in
        <a href="http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_suite#toc7">Environment Settings</a>
        in the MinGW wiki.</li>
        <li>See the installation instructions for MSYS at the <a href="http://www.mingw.org/wiki/MSYS">MinGW MSYS wiki</a>.
        You only need to install the MSYS 1.0 files. You do not need to install the DTK or the core files mentioned in the wiki page.</li>
<li>For convenience, you can download from this
<a href="http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe">direct link to MSYS-1.0.10.exe</a> </li>
<li>Make sure you are using a Windows account with "computer administrator" privileges when you
install MSYS. The NetBeans IDE might have issues when you try to build and run projects later if MSYS
is installed under a limited user account.</li>
<li>Run the MSYS-1.0.10.exe installer and accept the defaults.</li>
<li>To install the gdb debugger, download from this
<a href="http://sourceforge.net/project/downloading.php?group_id=2435&filename=gdb-6.8-mingw-3.tar.bz2&a=66334146">
    direct link to gdb-6.8-mingw-3.tar.bz2</a>. You must have a Windows zip utility such
    as gzip, 7-zip, or WinZip to extract this gdb archive.</li>

    <li>Unzip the gdb-6.8-mingw-3.tar.bz2 to your <tt>C:\MinGW</tt> directory so that the gdb
    executable is installed into your <tt>C:\MinGW\bin</tt> directory.</li>
<li>See <a href="#verifying">Verifying the Installation</a> to verify that the tools were installed correctly
for the NetBeans IDE.</li>

    </ol>

<br>

<!-- COMPILER SETUP: SOLARIS OS -------------------------------->
<h3><a name="compilers_solaris"></a>Solaris OS</h3>
<p>
    On the Solaris OS, you can use GNU tools or Sun Studio tools. The GNU
    tools are included in Solaris 10 OS in the /usr/sfw/bin directory by default.
    The Sun Studio software is a suite of developers tools that are free to download.
    The Sun Studio compilers are optimized for Sun hardware, and make it
    easier to produce performance tuned Solaris binaries.</p>
    <p style="tips">If you are using OpenSolaris, see <a href="#compilers_opensolaris">OpenSolaris OS</a>.
   </p>
    <p>
NetBeans IDE 6.9 has been tested with the following compilers
and tools.</p>

<table>
  <tbody>

           <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Tested</th>
                <th class="tblheader" scope="col">Description</th>
            </tr>
            <tr>
                <td class="tbltd1"><tt>cc</tt></td>
                <td class="tbltd1">5.9 and 5.10</td>
                <td class="tbltd1">Sun Studio 12 Update 1 C compiler</td>

            </tr>
            <tr>
                <td class="tbltd1"><tt>CC</tt></td>
                <td class="tbltd1">5.9 and 5.10</td>
                <td class="tbltd1">Sun Studio 12 Update 1 C++ compiler</td>

            </tr>

        <tr>
            <td class="tbltd1"><tt>gcc</tt></td>
            <td class="tbltd1">3.4.3</td>
            <td class="tbltd1">GNU C compiler</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>g++</tt></td>
            <td class="tbltd1">3.4.3</td>
            <td class="tbltd1">GNU C++ compiler</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gdb</tt></td>
            <td class="tbltd1">6.6 and 6.8</td>
            <td class="tbltd1">GNU debugger</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gmake</tt></td>
            <td class="tbltd1">3.81</td>
            <td class="tbltd1">GNU make</td>

        </tr>
         <tr>
            <td class="tbltd1"><tt>make</tt></td>
            <td class="tbltd1">3.81</td>
            <td class="tbltd1">Solaris make</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>dmake</tt></td>
            <td class="tbltd1">7.8 and 7.9</td>
            <td class="tbltd1">Sun Studio 12 Update 1 distributed make utility</td>

        </tr>
    </tbody>
</table>
<h4>Sun Studio 12 Update 1 Compilers</h4>
<p>If you want to use the Sun Studio 12 Update 1 compilers in Solaris 10 OS:</p>
<ul>
<li>If you
have Sun Studio 12 Update 1 software installed, ensure that <tt>/<i>installation
directory</i>/SUNWspro/bin</tt> 
is in your path before you start the NetBeans IDE. The default location on
Solaris 10 OS is <tt>/opt/SUNWspro/bin</tt></li>
<li>
If you do not have Sun Studio 12 Update 1 software installed, you can
download it free at <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/studio12-update1-136165.html" target="_blank">
<tt>http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/studio12-update1-136165.html</tt></a>.
</li>
</ul>
</p>

<p><b>To download and install the Sun Studio 12 Update 1 compilers:</b></p>
<ol>

<li>Create a directory for the downloaded file.
You must have write permission for this directory.</li>
<li>
Download the file for your platform into the download directory.
</li>
<li>Go to the download directory, and uncompress and untar the downloaded file.
<pre>
bzcat <i>filename</i> | tar xvf -
</pre>
</li>
<!-- 
<li>
Become superuser (root). Run the installer in the download directory by typing:
<pre>
./installer
</pre>
</li>
<br>
<li>Click Next on the Welcome page, and accept the Software License Agreement
and click Next.
</li>
<li>On the Select Components page of the installer, select Custom Install for
Sun Studio Software. Select Default Install for Solaris Patches. Select No Install for
Documentation, Source Distribution, and Sun Performance Library.
</li>
<li>On the Select Install Directory page, if you want to install the compilers
in the default installation directory <tt>/opt</tt>, click Next. If you want to
install the compilers in a different directory, type the path in the text field
and click Next.</li>
<li>On the Select Subcomponents page, select Compilers C and
Compilers C++, and click Next.
</li>
<li>On the Ready to Install page, verify that the disk space shown is available
on your system, and that the C compiler, C++ compiler, and Solaris patches are
listed. Then click Install Now.
</li>
<li>When installation is complete, proceed through the Installation Summary
page, the Registration page, and the After Installation page, and click Exit to
exit the installer.
</li>
-->
<li>Follow the instructions in <a
href="http://www.oracle.com/technetwork/indexes/documentation/index.html" target="_blank">Chapter 2 of the <i>Sun
Studio 12 Update 1 Installation Guide</i></a> to install the C compiler, C++ compiler,
and required Solaris patches.</li>
<li>Edit your <tt>PATH</tt> to add the path to the Sun Studio Update 1 software before
starting the NetBeans IDE.</li>
<li>See <a href="#verifying">Verifying the Installation</a> to verify that the tools were installed correctly
for the NetBeans IDE.</li>
</ol>


<h4>GNU Compilers and GNU <tt>make</tt></h4>
<p>
If you want to use the GNU compilers and GNU <tt>make</tt>:
<ul>
<li>If you have a standard installation of the Solaris 10 OS, the compilers and
<tt>gmake</tt> are installed in <tt>/usr/sfw/bin</tt>. Make sure that this
location is in your <tt>PATH</tt> before starting the NetBeans IDE.</li>
<li>If the compilers and <tt>gmake</tt> are not installed on your system, you can download them from
<a
href="http://www.sunfreeware.com" target="_blank"><tt>http://www.sunfreeware.com</tt></a>.</li>
</ul> 

<p><b>To download and install the GNU compilers and make utility</b></p>
<ol>
<li>Download <tt>gcc</tt> and <tt>make</tt>.</li>
<li>If the download zip files are not
automatically extracted during download, unzip them with <tt>gunzip</tt>.
</li>
<li>Install the packages with the <tt>pkgadd</tt> command.</li>
<li>Make sure to include the GNU
compiler directory and the GNU make directory in your path before starting the NetBeans IDE.
</li>
 <li>See <a href="#verifying">Verifying the Installation</a> to verify that the tools were installed correctly
for the NetBeans IDE.</li>
</ol>


<h4><tt>gdb</tt> Debugger</h4>
<p>Whether you use the Sun Studio compilers and Solaris <tt>make</tt> or the
GNU compilers and GNU <tt>make</tt>, you must have the <tt>gdb</tt> debugger to
debug applications in NetBeans IDE. You can download <tt>gdb</tt> from
<a href="http://www.sunfreeware.com" target="_blank">http://www.sunfreeware.com</a>.

<p><b>To download and install <tt>gdb</tt>:</b></p>
<ol>
<li>Download <tt>gdb</tt> 6.6 or 6.8.</li>
<li>If the download zip file is not
automatically extracted during download, unzip it with <tt>gunzip</tt>.
</li>
<li>Install the package with the <tt>pkgadd</tt> command.</li>
<li>Make sure to include the path to <tt>gdb</tt> in your <tt>PATH</tt> before starting
the NetBeans IDE.</li>
<li>See <a href="#verifying">Verifying the Installation</a> to verify that the tools were installed correctly
for the NetBeans IDE.</li>
</ol>
          
<br>

<!-- COMPILER SETUP: OPENSOLARIS OS ----------------------->
<h3><a name="compilers_opensolaris"></a>OpenSolaris OS</h3>

<p>
    On the OpenSolaris OS, you can use GNU tools or Sun Studio tools. Both tool
    collections can be easily downloaded using the pkg command or Package Manager utility
    from the OpenSolaris desktop.</p>
    <p>
NetBeans IDE 6.9 has been tested with the following compilers
and tools.</p>

<table>
  <tbody>

           <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Tested</th>
                <th class="tblheader" scope="col">Description</th>
            </tr>
            <tr>
                <td class="tbltd1"><tt>cc</tt></td>
                <td class="tbltd1">5.9 and 5.10</td>
                <td class="tbltd1">Sun Studio 12 Update 1 C compiler</td>

            </tr>
            <tr>
                <td class="tbltd1"><tt>CC</tt></td>
                <td class="tbltd1">5.9 and 5.10</td>
                <td class="tbltd1">Sun Studio 12 Update 1 C++ compiler</td>

            </tr>

        <tr>
            <td class="tbltd1"><tt>gcc</tt></td>
            <td class="tbltd1">3.4.3</td>
            <td class="tbltd1">GNU C compiler
            <br>See the <a href="https://netbeans.org/community/releases/69/relnotes.html#known_issues-cnd">

                NetBeans IDE 6.9 release notes</a> for information about NetBeans and gcc in the OpenSolaris OS.</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>g++</tt></td>
            <td class="tbltd1">3.4.3</td>
            <td class="tbltd1">GNU C++ compiler. <br>See the <a href="https://netbeans.org/community/releases/69/relnotes.html#known_issues-cnd">

                NetBeans IDE 6.9 release notes</a> for information about NetBeans and gcc in the OpenSolaris OS.</td>
</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gdb</tt></td>
            <td class="tbltd1">6.6</td>
            <td class="tbltd1">GNU debugger (note that gdb 6.3 is in the OpenSolaris<br>
                repository, and is not supported by NetBeans IDE 6.9). <br>gdb 6.6 was built on OpenSolaris
                for testing purposes. <br>See the <a href="https://netbeans.org/community/releases/69/relnotes.html#known_issues-cnd">

                NetBeans IDE 6.9 release notes</a> for information about NetBeans and gdb in the OpenSolaris OS.</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gmake</tt></td>
            <td class="tbltd1">3.81</td>
            <td class="tbltd1">GNU make</td>

        </tr>
         <tr>
            <td class="tbltd1"><tt>make</tt></td>
            <td class="tbltd1">-</td>
            <td class="tbltd1">Solaris make</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>dmake</tt></td>
            <td class="tbltd1">7.8 and 7.9</td>
            <td class="tbltd1">Sun Studio 12 Update 1 distributed make utility</td>

        </tr>
    </tbody>
</table>
<br><br>
<p><b>To download and install the Sun Studio 12 software and gdb debugger:</b></p>
<ol><li>Type the following in an OpenSolaris terminal window:
<pre>$ pfexec pkg install sunstudio12u1 gdb</pre>
<li>Edit your <tt>PATH</tt> to include the path to the Sun Studio 12 Update 1 compilers before starting
the NetBeans IDE. The path is <tt>/opt/sunstudio12u1/bin</tt>.</li>
</ol>

<p><b>To download and install the GNU gcc compilers and gdb debugger:</b></p>
<ol><li>Type the following command in an OpenSolaris terminal window:<br>
<pre>$ pfexec pkg install SUNWgcc SUNWgccruntime gdb</pre>

</li>

<li>Links to the compilers are installed in /usr/bin, which is
most likely already on your path. If /usr/bin is not on your path, edit your <tt>PATH</tt> to
add it before starting the NetBeans IDE.  </li>
 <li>See <a href="#verifying">Verifying the Installation</a> to verify that the tools were installed correctly
for the NetBeans IDE.</li>
</ol>


<!--<p>See the OpenSolaris wiki page <a href="http://wikis.sun.com/pages/viewpage.action?pageId=108496910" target="_blank">
    Installing C++, Fortran Development Tools</a> for more information.
</p>-->


<!-- COMPILER SETUP: LINUX OS -------------------------------->
<h3><a name="compilers_linux"></a>Linux</h3>
<p>
    On Linux platforms, you can use GNU tools or Sun Studio tools.
<p>
NetBeans IDE has been tested with the following compilers
and tools:</p>


<table>
  <tbody>

           <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Tested</th>
                <th class="tblheader" scope="col">Description</th>
            </tr>
            <tr>
                <td class="tbltd1"><tt>cc</tt></td>
                <td class="tbltd1">5.9 and 5.10</td>
                <td class="tbltd1">Sun Studio 12 Update 1 C compiler</td>

            </tr>
            <tr>
                <td class="tbltd1"><tt>CC</tt></td>
                <td class="tbltd1">5.9 and 5.10</td>
                <td class="tbltd1">Sun Studio 12 Update 1 C++ compiler</td>

            </tr>

        <tr>
            <td class="tbltd1"><tt>gcc</tt></td>
            <td class="tbltd1">4.1.2, 4.2.3, and 4.3.3</td>
            <td class="tbltd1">GNU C compiler in Red Hat 5 and Ubuntu 8.04</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>g++</tt></td>
            <td class="tbltd1">4.1.2, 4.2.3, and 4.3.3</td>
            <td class="tbltd1">GNU C++ compiler in Red Hat 5 and Ubuntu 8.04</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gdb</tt></td>
            <td class="tbltd1">6.6 and 6.8</td>
            <td class="tbltd1">GNU debugger in Red Hat 5 and Ubuntu 8.04</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gmake</tt></td>
            <td class="tbltd1">3.81</td>
            <td class="tbltd1">GNU make in Red Hat 5 and Ubuntu 8.04</td>

        </tr>
       
    </tbody>
</table>
<br><br>
    
    <h4>Sun Studio 12 Update 1 Compilers on Linux</h4>
<p>If you want to use the Sun Studio 12 Update 1 compilers in a Linux OS:</p>
<ul>
<li>If you have Sun Studio 12 Update 1 software installed, ensure that <tt>/<i>installation
directory</i>/sunstudio12u1/bin</tt>
is in your path before you start the NetBeans IDE. The default location
is <tt>/opt/sun/sunstudio12u1/bin</tt> when installing with Linux packages.</li>
<li>
If you do not have Sun Studio 12 Update 1 software installed, you can
download it from developers.sun.com as described below.
</li>
</ul>

<p><b>To download and install the Sun Studio 12 Update 1 compilers:</b></p>
<ol>

<li>Create a directory where you can download and expand the Sun Studio compressed archive file.
You must have write permission for this directory.
<li>If your browser is set to install
in a particular location such as your Desktop or a Downloads directory without prompting,
set the browser preferences to download to the
directory you created.  For Firefox, the download directory is set in Edit &gt; Preferences &gt; Main.</li>

<li>Go to <a href="http://developers.sun.com/sunstudio/downloads/" target="_blank">
<tt>http://developers.sun.com/sunstudio/downloads/</tt></a> and download the file
for your platform into the download directory you created. If you are using Ubuntu,
choose the tarfile installation because the packages are for SUSE and Red Hat.  Note also
that Ubuntu is not an officially supported platform for Sun Studio IDE, but the compilers
have been tested for use in NetBeans IDE and been found to work.
</li>
<li>After the download is complete, open a terminal, go to the download directory, and uncompress and untar the downloaded file.
<pre>
bzcat <i>filename</i> | tar xvf -
</pre>
</li>
<li>
If you downloaded the SUSE or RPM packages, follow the instructions in  <a
href="http://docs.sun.com/app/docs/doc/820-7601/6nirmq79" target="_blank">Chapter 2 of the <i>Sun
Studio 12 Update 1 Installation Guide</i></a> to install.</li>


<li>Edit your <tt>PATH</tt> to add the path to the Sun Studio software before
starting the NetBeans IDE.</li>
 <li>See <a href="#verifying">Verifying the Installation</a> to verify that the tools were installed correctly
for the NetBeans IDE.</li>
</ol>
<p><b>To download and install the GNU debugger in Red Hat 5, type:</b></p>
<pre>yum install gdb</pre>

<p><b>To download and install the GNU debugger in Ubuntu, type:</b></p>
<pre>apt-get install gdb</pre>


<!-- COMPILER SETUP: MAC OS X ---------------------------------->
<h3><a name="compilers_mac"></a>Macintosh OS X</h3>

<p>
NetBeans IDE has been tested with the following compilers
and tools:

<table>
  <tbody>

           <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Tested</th>
                <th class="tblheader" scope="col">Description</th>
            </tr>


        <tr>
            <td class="tbltd1"><tt>gcc</tt></td>
            <td class="tbltd1">4.0.1</td>
            <td class="tbltd1">GNU C compiler in Mac OS X 10.5</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>g++</tt></td>
            <td class="tbltd1">4.0.1</td>
            <td class="tbltd1">GNU C++ compiler in Mac OS X 10.5</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>gdb</tt></td>
            <td class="tbltd1">6.3.5</td>
            <td class="tbltd1">GNU debugger in Mac OS X 10.5</td>

        </tr>
        <tr>
            <td class="tbltd1"><tt>make</tt></td>
            <td class="tbltd1">3.81</td>
            <td class="tbltd1">GNU make in Mac OS X 10.5</td>

        </tr>

    </tbody>
</table>

<br>
<p>Install the following packages that are provided with your Macintosh OS X:
<ul>
<li>Xcode</li>
<li>X11</li>
</ul>
<p>These packages can also be downloaded from
<a href="http://developer.apple.com/mac" target="_blank">Apple Developer Connection</a> with
the free ADC membership.</p>


<br><!-- VERIFYING THE INSTALLATION ------------------------------------------>
<h2><a name="verifying">Verifying the Installation</a></h2>
<p>To verify that the installation is correct, start the NetBeans IDE, 
build a sample project, and run it in the <tt>gdb</tt> debugger.</p>


<h3><a name="start">Start the NetBeans IDE</a></h3>
<p><b>To start the IDE, do one of the following:</b></p>
<ul>
<li>Open the NetBeans IDE icon on the desktop.</li>
<li>In Linux or Solaris platforms, navigate to the <tt>bin</tt> subdirectory of your NetBeans installation and
type <tt>./netbeans</tt>.
<li>Launch the NetBeans IDE through the desktop's menus, as you do for other applications.
<br>This method is available on Windows and OpenSolaris platforms, but might not be
on Solaris 10 OS and some Linux platforms.</li>
</ul>

<h3><a name="test"></a>Build a Sample Project to Test the Tools</h3>
<p>On all platforms, you can build a sample project to test the compiler installation,
and run it in the debugger to test the gdb installation.</p>
<p><b>To build a sample project and run it in the debugger:</b></p>
<ol>
<li>Open the New Project wizard by choosing File &gt; New Project.</li>
<li>In the Categories panel on the Choose Project page of the wizard, expand
the Samples category and select the C/C++ subcategory.</li>
<li>In the Projects panel, select the <tt>Welcome</tt> project. Click Next.
</li>
<li>On the Project Name and Location page, click Finish.
</li>
<li>In the Projects window of the IDE, right-click the <tt>Welcome_1</tt> project and
choose Build. If your compilers and <tt>make</tt> utility are
installed correctly and the path to them is set, build output is displayed in
the Output window and the project builds successfully.
</li>
<li>Double-click the <tt>welcome.cc</tt> file to open it in the Source
Editor.</li>
<li>Right-click in the left margin of the Source Editor window and choose
Show Line Numbers. 
</li>
<li>Set a breakpoint by clicking in the left margin of the Source
Editor window next to any line.
</li>
<li>Right-click the project and choose Debug. If the <tt>gdb</tt>
debugger is installed correctly and the path to it is set, <tt>gdb</tt> starts
up, the Debugger tabs are displayed, and the <tt>Welcome</tt> application 
runs and stops at the breakpoint.
</li>
<li>Choose Debug &gt; Continue to run the application to completion.
</li>
<li>If the project doesn't build or debugger doesn't work, see the next section.</li>
</ol>
<h2><a name="ts"></a>Troubleshooting Tool Issues</h2>
<ol>
    <li>In the IDE, select Tools &gt; Options and click the C/C++ button.</li>
    <li>In the Build Tools tab, look at the Tool Collection list to see if your
    tool collection is listed.</li>
    <li>Select the tool collection if it is listed, and check the paths to the tools.
    If the Base Directory path is incorrect, you may have made a mistake when setting
    your Path environment variable. Refer back to the instructions for setting your path
    in this document, and correct the path if necessary.</li>
    <li>If the tool collection is not listed, click Restore Defaults. This will
    cause the IDE to rescan your environment to look for tools and the tool collection
    should be found if the Path environment variable is correct.</li>
    <li>If you are still having an issue, you can try adding a new tool collection and
    specify the path to the tools, as follows:
    <ol type="a">
        <li>Click Add, below the Tool Collection list.</li>
        <li>Browse to the directory that contains the executables for the compilers, debugger, and
        make utility. This is usually a directory named bin.</li>
        <li>Select the directory and click Open. The IDE should be able to determine the family
        of the tools and update the other fields in the dialog box appropriately. If not, an error
        is displayed.</li>
        <li>If the tools are identified correctly, click OK in the Add Tool Collection dialog box.
            The new collection should be displayed in the list.</li>
        <li>Select the new tool collection and click Default to make sure this tool collection
        is used automatically for new projects.
		<p class="tips">If you cannot solve the problem, ask for help at the
    <a href="http://forums.netbeans.org/cnd-users.html" target="_blank">NetBeans C/C++ User Forum</a>.</p></li>
    </ol>
	</li>
	</ol>



<!-- NEXT STEPS -->
<br>
<h2>Next Steps</h2>
<p>To learn quickly how to develop a C or C++ application with the NetBeans
IDE, see the <a href="../../../kb/docs/cnd/quickstart.html">C/C++
Projects Quick Start Tutorial</a>
</p>

<div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=Feedback:%20Configuring%20NetBeans%20IDE%206.9%20for%20C/C++/Fortran">Send Us Your Feedback</a></div>

</body>
</html>
