<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Installing and Configuring C/C++ Support - NetBeans
IDE 65 Tutorial</title>


<meta name="DESCRIPTION" content="Installing and Configuring C/C++ Support - NetBeans
IDE 6.5 Tutorial">
<meta name="author" content="Ann Rice"><!--Optional tag-->
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">

</head>
<body>
<a name="top"></a>

<h1>Installing and Configuring C/C++ Support</h1>
<!-- START INTRO ---------------------------------------------------------------------------------------* -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">
<p><em>Contributed and maintained by <a href="mailto:ann.rice@sun.com"><i>Ann
Rice</i></a><br>

September 2008</em> [Revision number: V6.5-1]</div>
<p>This document provides
information on downloading, installing, and configuring C/C++ support in the
NetBeans IDE.</p>

<!-- END INTRO -->
<h3>Contents</h3>
<img src="../../../images_www/articles/65/netbeans-stamp.gif" class="stamp" 
alt="Content on this page applies to NetBeans IDE 6.5" 
title="Content on this page applies to the NetBeans IDE 6.5">   
<table class="b-none" cellpadding="0" cellspacing="0" class="vatop">
<tr>
      <td class="hyphen">-&nbsp;</td>
      <td><a href="#downloading" title="Downloading C/C++ Support">Downloading C/C++
      Support</a></td>
   </tr>
   <tr>                      
      <td><class="hyphen">-&nbsp;</td>
      <td><a href="#compilers" title="Installing and Setting Up the Compilers and
      Tools">Installing and Setting Up the Compilers and Tools</a></td>
   </tr>
   <tr>
      <td><class="hyphen">-&nbsp;</td>
      <td><a href="#verifying" title="Verifying the Installation">Verifying the
      Installation</a>
      </td>
   </tr>
</table>

<br>
<!-- DOWNLOADING ---------------------------------------------------------->
<h2><a name="downloading">Downloading C/C++ Support</a></h2>
<br>
<p>If you do not have the NetBeans 6.5 IDE, go to the
 <a href="https://netbeans.org/downloads/index.html">NetBeans IDE
            6.5 Download Page</a>, and download 
            a version of the IDE that contains C/C++ support. 
            If you have a NetBeans IDE 6.5 installation that does not include
            C/C++ support, 
        complete the following steps to add C/C++ support to the IDE.</p>
        <ol>
            <li>If your network uses a proxy, choose Tools &gt; Options from the main 
                menu, select Manual Proxy Settings, enter the HTTP Proxy and Port for 
            your proxy, and click OK.</li>
            <li>Choose Tools &gt; Plugins from the main menu.</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.
            <li>Click Install.<br>
            <br>The NetBeans IDE Installer starts.</li>
            <li>In the NetBeans IDE Installer, click Next.</li>
            <li>Read the license agreement, then select the I Accept the Terms in All 
            License Agreements radio button, 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>
        
<br>
<!-- COMPILER SETUP ------------------------------------------------------->
<h2><a name="compilers">Installing and Setting Up the Compilers and Tools</a></h2>
<p>Netbeans C/C++ pack requires a C compiler, C++ compiler,
<tt>make</tt> utility, and <tt>gdb</tt> debugger.
</p>
<!-- COMPILER SETUP: WINDOWS ---------------------------------------------->
<blockquote>
<h3 style="color:#0E1B55"><a name="compilers_windows"></a>Windows</h3>
<p>NetBeans C/C++ pack has been tested with the following compilers
and tools:

<ul>
<li>Cygwin 1.5.21</li>
<li>Cygwin <tt>gcc-core</tt> (C compiler) 3.4.4</li>
<li>Cygwin <tt>gcc-c++</tt> (C++ compiler) 3.4.4</li>
<li>Cygwin <tt>gdb</tt> (GNU Debugger) 6.8</li>
<li>Cygwin <tt>make</tt> 3.81</li>
</ul>
</p>
<p>If you already have the Cygwin GNU 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. If you have the correct versions, then no further setup is
necessary. 
</p>
<blockquote>
<p><b>To check the versions of your Cygwin compilers and tools:</b>
<ol>
<li>
<p>Check the version of Cygwin by typing:
<pre>
cygcheck -c cygwin
</pre>
</li>
<li>Check the versions of the compilers, <tt>make</tt>, and <tt>gdb</tt> by
typing:
<pre>
gcc --version
g++ --version
make --version
gdb --version
</pre>
</li>
</ol>
<p><b>To install the GNU compilers, <tt>make</tt>, and <tt>gdb</tt> debugger from 
<a href="http://cygwin.com">cygwin.com</a>:</b></p>
<ol>
<li>Download the Cygwin <a href="http://www.cygwin.com/setup.exe">
	<tt>setup.exe</tt></a> program by clicking the Install or Update Now!
	icon in the middle of the page.
	</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. At a minimum, select gcc-core: C compiler, 
	gcc-g++: C++ compiler, gdb: The GNU Debugger, and make: the GNU 
	version of the 'make' utility.
	</li>
    <li>
        Now add the Compiler directory to your path:
       <br><br>
        <ol type="a">
        <li>Open the Control Panel (Start &gt; Settings &gt; Control Panel) and
        double-click the System program.</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.</li>
        <li>Click OK in the Environment Variables dialog and the System 
        Properties dialog.
        </li>
        </ol>
	
    </li>
    </ol>
    </blockquote>
              <br><p align="center"><a href="#top">top</a></p>
<br>

<!-- COMPILER SETUP: SOLARIS OS -------------------------------->
<h3 style="color:#0E1B55"><a name="compilers_solaris"></a>Solaris OS</h3>
<p>
NetBeans C/C++ pack has been tested with the following compilers
and tools:
 <ul>
<li>Sun Studio 12 C compiler 5.9 and <tt>gcc</tt> 3.4.3</li>
<li>Sun Studio 12 C++ compiler 5.9 and <tt>g++</tt> 3.4.3</li>
<li><tt>gdb</tt> (GNU debugger) 6.6 and 6.8</li>
<li>Solaris <tt>make</tt> and <tt>gmake</tt> 3.80</li>
</ul>
<h4>Sun Studio 12 Compilers</h4>
<p>If you want to use the Sun Studio 12 compilers:
<ul>
<li>If you
have Sun Studio 12 software installed, ensure that <tt>/<i>installation
directory</i>/SUNWspro/bin</tt> 
is in your path before you start the NetBeans IDE.</li>
<li>
If you do not have Sun Studio 12 software installed, you can
download it free at <a href="http://developers.sun.com/sunstudio/downloads/">
<tt>http://developers.sun.com/sunstudio/downloads/</tt></a>.
</li>
</ul>
</p>
<blockquote>
<p><b>To download and install the Sun Studio 12 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://docs.sun.com/app/docs/doc/820-2971/gemyi?a=view">Chapter 2 of the <i>Sun 
Studio 12 Quick Installation (English, Japanese, Simplified Chinese)</i>
guide</a> to install the C compiler, C++ compiler,
and required Solaris patches.</li>
</ol>
</blockquote>
<p>Add the path to the Sun Studio software to your <tt>PATH</tt> before
starting the NetBeans IDE.
</p>

<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 path before staring 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"><tt>http://www.sunfreeware.com</tt></a>.</li>
</ul> 
<blockquote>
<p><b>To download and install the GNU compilers and make</b></p>
<ol>
<li>Download <tt>gcc</tt> and <tt>make</tt>.</li>
<li>If the download zip files are not
automatically gunzipped during download, unzip them with <tt>gunzip</tt>.
</li>
<li>Install the packages with the <tt>pkgadd</tt> command.</li>
</ol>
</blockquote>
<p>Make sure to include the GNU 
compiler directory and the GNU make directory in your path before starting the NetBeans IDE.
</p>

<h3><tt>gdb</tt> Debugger</h3>
<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 C/C++ Development Pack. You can download <tt>gdb</tt> 6.2.1 from 
<a href="http://www.sunfreeware.com"><tt>http://www.sunfreeware.com</tt></a>.
<blockquote>
<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 gunzipped during download, unzip it with <tt>gunzip</tt>.
</li>
<li>Install the package with the <tt>pkgadd</tt> command.</li>
</ol>
</blockquote>
<p>Make sure to include the path to <tt>gdb</tt> in your path before starting
the NetBeans IDE.</p>
          <br><p align="center"><a href="#top">top</a></p>
<br>
<!-- COMPILER SETUP: LINUX OS -------------------------------->
<h3 style="color:#0E1B55"><a name="compilers_linux"></a>Linux</h3>
<p>
NetBeans C/C++ pack has been tested with the following compilers
and tools:
<ul>
<li>Sun Studio 12 C compiler, Red Hat Fedora Core <tt>gcc</tt> 4.1.2, and Ubuntu
<tt>gcc</tt> 4.1.2</li>
<li>Sun Studio 12 C++ compiler, Red Hat Fedora Core <tt>g++</tt> 4.1.2, and Ubuntu g++
4.1.2</li>
<li>Red Hat Fedora Core <tt>gdb</tt> 6.6 and 6.8, and Ubuntu <tt>gdb</tt> 6.6
and 6.8</li>
<li>Red Hat Fedora Core <tt>make</tt> 3.81 and Ubuntu <tt>make</tt> 3.81</li>
</ul>
</p>
<blockquote>
<p><b>To download and install the Sun Studio 12 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>Follow the instructions in <a
href="http://docs.sun.com/app/docs/doc/820-2971/gemyi?a=view">Chapter 2 of the <i>Sun 
Studio 12 Quick Installation (English, Japanese, Simplified Chinese)</i> guide</a> to install the C compiler, C++ compiler,
and required Solaris patches.</li>
</ol>
</blockquote>
<p>Add the path to the Sun Studio software to your <tt>PATH</tt> before
starting the NetBeans IDE.
</p>
              <br><p align="center"><a href="#top">top</a></p>
<br>
<!-- COMPILER SETUP: MAC OS X ---------------------------------->
<h3 style="color:#0E1B55"><a name="compilers_mac"></a>Macintosh OS X</h3>
<p>
NetBeans C/C++ pack has been tested with the following compilers
and tools:
<ul>
<li><tt>gcc</tt> 4.0.1 compilers</li>
<li><tt>gdb</tt> (GNU debugger) 6.3.5</li>
<li>GNU <tt>make</tt> 3.80</li>
</ul>
<p>Install the following packages that are provided with your Macintosh OS X:
<ul>
<li>Xcode</li>
<li>X11</li>
</ul>
</blockquote>
</blockquote>

<br>
<p align="center"><a href="#top">top</a></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>
<blockquote>
<h3 style="color:#0E1B55"><a name="verify_windows">Windows</a></h3>
<p><b>To start the IDE on Microsoft Windows machines, do one of the following:</b></p>
<ul>
<li>Double-click the NetBeans IDE icon on your desktop.</li>
<li>From the Start menu, select Programs &gt; NetBeans 6.5 &gt; NetBeans
IDE.</li>
</ul>
<p><b>To build a sample project and run it in the debugger:</b>
<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 line 50.
</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> 
</ol>
          <br><p align="center"><a href="#top">top</a></p>
<br><h3 style="color:#0E1B55"><a name="verify_solaris">Solaris OS</a></h3>
<p><b>To start the NetBeans IDE on Solaris systems:</b></p>
<ul>
<li>Double-click the NetBeans IDE on your desktop.</li>
<li>Navigate to the <tt>bin</tt> subdirectory of your installation and 
execute the launcher script by typing <tt>./netbeans</tt>.
</ol>
</li>
</ul>
<p><b>To build a sample project and run it in the debugger:</b>
<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 Properties.
</li>
<li>In the Project Properties dialog box, select the Build category and then 
select the tool collection you want to validate from the Tool Collection
drop-down list. Click OK.
</li>
<li>In the Projects window, right-click the 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 line 50.
</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> 
</ol>
          <br><p align="center"><a href="#top">top</a></p>
<br>
<h3 style="color:#0E1B55"><a name="verify_linux">Linux</a></h3>
<p><b>To start the NetBeans IDE on Linux systems:</b></p>
<ol>
<li>Navigate to the <tt>bin</tt> subdirectory of your installation. </li>
<li>Execute the launcher script by typing <tt>./netbeans</tt>.
</ol>
<p><b>To build a sample project and run it in the debugger:</b>
<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 Properties.
</li>
<li>In the Project Properties dialog box, select the Build category and select
the tool collection you want to validate from the Tool Collection drop-down
list. Click OK.
</li>
<li>In the Projects window, right-click the 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 line 50.
</li>
<li>Right-click the project and choose Debug. If the <tt>gdb</tt>
debugger is installed correctely 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.
</ol>
<br><p align="center"><a href="#top">top</a></p>
<br>
<h3 style="color:#0E1B55"><a name="verify_mac">Mac OS X</a></h3>
<p><b>To start the IDE on Macintosh machines, double-click the NetBeans icon on your desktop.</li>
<p>To build a sample project and run it in the debugger:</b>
<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 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 and the Debugger tabs are displayed.
</li> 
</ol>
</blockquote>  
          <br><p align="center"><a href="#top">top</a></p>
<!-- 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>

</body>
</html>
