| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | |
| <html> | |
| <head> | |
| <title>NetBeans IDE C/C++ Projects Quick Start Tutorial</title> | |
| <meta name="KEYWORDS" content="NETBEANS, TUTORIAL, C/C++, PROJECTS"> | |
| <meta name="DESCRIPTION" content="Short tutorial that demonstrates working with C/C++ | |
| projects in NetBeans IDE"> | |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > | |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> | |
| </head> | |
| <body> | |
| <a name="top"></a> | |
| <h1>C/C++ Projects Quick Start Tutorial</h1> | |
| <!-- START INTRO ---------------------------------------------------------------------------------------* --> | |
| <div class="articledate" style="margin-left: 0px;font-style:italic;"> | |
| <p>Contributed by <i>Ann | |
| Rice</i> and maintained by <i>Susan Morgan</i> <br> | |
| <em>March 2014</em> [Revision number: V8.0-1]</div> | |
| <p>The following short tutorial takes you through the basic | |
| steps of creating and configuring a C or C++ project in NetBeans IDE. | |
| </p> | |
| <!-- END INTRO --> | |
| <p><b>Contents</b></p> | |
| <img src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" class="stamp" | |
| alt="Content on this page applies to NetBeans IDE 7.2 and more recent" title="Content on this page applies to the NetBeans IDE | |
| 7.2 and more recent"> | |
| <ul class="toc"> | |
| <li><a href="#requirements" title="Requirements">Requirements</a></li> | |
| <li><a href="#projects" title="Creating C and C++ Projects">Creating C | |
| and C++ Projects</a></li> | |
| <li><a href="#running" title="Running a Project">Running a Project</a></li> | |
| <li><a href="#existingsourcesprojects" title="Creating a C/C++ Project From | |
| Existing Code">Creating a C/C++ Project With Existing Sources</a></li> | |
| <li><a href="#frombinaryprojects" title="Creating a C/C++ Project From a Binary File">Creating a C/C++ Project From a Binary File</a></li> | |
| <li><a href="#nextsteps" title="Next Steps">Next Steps</a></li> | |
| </ul> | |
| <h2><a NAME="requirements"></a>Requirements</h2> | |
| <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 7.2 or more recent | |
| with NetBeans C/C++ plugin</a></td> | |
| </tr> | |
| <tr> | |
| <td class="tbltd1">Java Developer Kit (JDK)</td> | |
| <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">version 6, 7, or 8</a> </td> | |
| </tr> | |
| <tr> | |
| <td class="tbltd1"> | |
| C and C++ compilers, <tt>make</tt>, <tt>gdb</tt> | |
| </td> | |
| <td class="tbltd1"> | |
| <a href="../../../community/releases/80/cpp-setup-instructions.html">Configuring the NetBeans IDE for C/C++/Fortran</a> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <br> | |
| <p>See the <a href="../../../community/releases/80/install.html">NetBeans IDE | |
| Installation | |
| Instructions</a> and <a | |
| HREF="../../../community/releases/80/cpp-setup-instructions.html"> | |
| Configuring the NetBeans IDE for C/C++/Fortran</a><br> for | |
| information about downloading and installing the required software.</p> | |
| <p><b>Sample Projects</b> | |
| </p> | |
| <p>If you want to just play with some sample projects provided in the IDE, choose | |
| File > New Project, then open the Samples category and the C/C++ subcategory. The IDE | |
| provides several sample C and C++ projects to help you familiarize | |
| yourself with the IDE. | |
| </p> | |
| <h2><a name="projects"></a>Creating C and C++ Projects</h2> | |
| <p>NetBeans C/C++ support lets you create C and C++ Application | |
| and Library projects with generated makefiles, as well as C and C++ projects | |
| with existing sources. | |
| </p> | |
| <p>You can build, run, and debug your project on the local host (the system | |
| from which you started the IDE) or on a remote host running a UNIX® | |
| operating system. For information on specifying the tool collection for your | |
| project and on defining and using remote hosts, see <a | |
| href="development-environment.html">Defining Your C/C++ Project's Development Environment</a>. | |
| </p> | |
| <p> | |
| With a C/C++ Application, Dynamic Library, or Static Library project, the | |
| IDE controls all aspects | |
| of how your application is built, run, and debugged. You specify project settings | |
| when creating the project and in the Project Properties dialog box. The IDE | |
| generates a makefile in which all of your settings are stored. | |
| </p> | |
| <div class="indent"> | |
| <h3><a name="CreatingApp"></a>Creating a C/C++ Application Project</h3> | |
| <ol> | |
| <li>Open the New Project wizard by choosing File > New Project.</li> | |
| <li>In the wizard, select the C/C++ category.</li> | |
| <li> | |
| The wizard gives you a choice of several types of new projects. | |
| Select C/C++ Application and click Next. | |
| <br> | |
| <img src="../../../images_www/articles/72/cnd/quickstart/creating_application.png" alt="Screenshot of the New Project | |
| Wizard" class="margin-around"> | |
| </li> | |
| <li> | |
| Create a new C/C++ Application project from the wizard using the defaults. | |
| You can choose the name of the project and the location of the project. | |
| </li> | |
| <li>Click Finish to exit the wizard.</li> | |
| </ol> | |
| <p> | |
| A project is created with logical folders. | |
| A logical folder is not a directory. It is a way for you to organize your | |
| files and does not | |
| reflect where the files are physically stored on disk. Files added to logical | |
| folders are automatically part of the project and are compiled when you build | |
| the project. | |
| </p> | |
| <p> | |
| Files added to the Important Files folder are not part of the project and are | |
| not compiled when you build the project. These files are just for reference | |
| and are convenient when you have a project with an existing makefile. | |
| </p> | |
| <h3><a name="SwitchingViews"></a>Switching Between the Logical View and the Physical View of the Project</h3> | |
| <p>A project has both a logical and a physical view. | |
| You can switch between the logical view and the physical view of your | |
| project. | |
| </p> | |
| <ol> | |
| <li> | |
| Select the Files tab. This window shows the physical view of your | |
| project. It displays files and folders as they are stored on disk. | |
| <br> | |
| <img class="b-all margin-around" src="../../../images_www/articles/72/cnd/quickstart/files_tab.png" alt="Screenshot of the Files tab"> | |
| </li> | |
| <li> | |
| Select the Projects tab. This window shows the logical view of | |
| your project. | |
| <br> | |
| <img class="b-all margin-around" src="../../../images_www/articles/72/cnd/quickstart/projects_tab.png" alt="Screenshot of the Projects tab"> | |
| <p class="tips">Most commands that you run on a project are available in the Projects | |
| tab, not the Files tab.</p> | |
| </li> | |
| </ol> | |
| <h3><a name="AddingFilesandFolders"></a>Adding Files and Folders to Your Project</h3> | |
| <p>You can add logical folders to your project. | |
| </p> | |
| <ol> | |
| <li> | |
| Right-click the project node of your Application project | |
| and choose New Logical Folder. A new logical folder is added to the project. | |
| </li> | |
| <li> | |
| Right-click the new logical folder and select Rename. Type the name | |
| you would like to give the new folder. | |
| </li> | |
| </ol> | |
| <p>You can add both | |
| files and folders to an existing folder. Logical folders can be nested. | |
| </p> | |
| <h3><a name="AddingNewFiles"></a>Adding New Files to Your Project</h3> | |
| <p>You can add new files to your project. | |
| </p> | |
| <ol> | |
| <li>Right-click the Source Files folder and choose New | |
| > C++ Source File.</li> | |
| <li>On the Name and Location page of the New File dialog box, type <tt>newfile</tt> in the File Name field. | |
| <br><br> | |
| <img src="../../../images_www/articles/72/cnd/quickstart/adding_files.png" alt="Screenshot of the New File dialog | |
| box"> | |
| <br><br> | |
| </li> | |
| <li>Click Finish.</li> | |
| </ol> | |
| <p> | |
| The <tt>newfile.cpp</tt> file is created on disk in the | |
| directory specified in the wizard and added to the Source Files folder. You | |
| can add any kind of file to this folder, not only source files. | |
| </p> | |
| <h3><a name="MoreNewFiles"></a>Adding More New Files to Your Project</h3> | |
| <ol> | |
| <li>Right-click the Header Files folder and choose New > C++ Header | |
| File. | |
| </li> | |
| <li>On the Name and Location page of the New File dialog box, type <tt>newfile</tt> in the File Name field.</li> | |
| <li>Click Finish.</li> | |
| </ol> | |
| <p> | |
| The <tt>newfile.h</tt> file is created on disk in the directory specified in the wizard | |
| and added to the Header Files folder. | |
| </p> | |
| <h3><a name="AddingExistingFiles"></a>Adding Existing Files to Your Project</h3> | |
| <p> | |
| You can add existing files to your project in two ways: | |
| </p> | |
| <ul> | |
| <li> | |
| Right-click the Source Files folder and choose Add Existing Item. | |
| You can point to an existing file on disk using the Select Item | |
| dialog box and add the file to the project. | |
| </li> | |
| <li>Right-click the Source Files folder and choose Add Existing Items from | |
| Folders. Use the Add Files dialog box to add folders that contain existing | |
| files. | |
| </ul> | |
| <p class="tips"> | |
| Do not use New menu item to add existing items. The Name and Location panel | |
| will tell you the file already exists. | |
| </p> | |
| <h3><a name="ProjectProperties"></a>Setting Project Properties</h3> | |
| <p> | |
| <p>When the project is created, it has two configurations: Debug and Release. | |
| A configuration is a collection of settings used for the project, which allows you | |
| to easily switch many settings at once when you select a configuration. | |
| The Debug configuration builds a version of your application that includes | |
| debug information. | |
| The Release configuration builds an optimized version. | |
| </p> | |
| <p>The Project Properties dialog box contains build and configuration information | |
| for your project. To open the Project Properties dialog box: | |
| </p> | |
| <ul> | |
| <li> | |
| Right-click the project node of the | |
| <tt>CppApplication_1</tt> project and choose Properties. | |
| <br> | |
| <img | |
| src="../../../images_www/articles/72/cnd/quickstart/project_properties.png" alt="Screenshot of the Project | |
| Properties dialog box" class="margin-around"> | |
| </li> | |
| </ul> | |
| <p> | |
| You can modify the build tool defaults, compiler settings, and other configuration settings in the | |
| Project Properties dialog box by selecting a node in the left panel and modifying | |
| the properties in the right panel. Select some of the nodes and property | |
| values and notice the properties you can set. When you set General | |
| properties, you are setting them in all configurations of the project. | |
| When you set Build, Run, or Debug properties, you are setting properties | |
| in the currently selected configuration. | |
| <h3><a name="Configurations"></a>Managing Configurations</h3> | |
| <p>Properties changed in the Project Properties window are stored in the | |
| makefile for the current configuration. You can edit the default configurations | |
| or create new ones. To create a new configuration: | |
| </p> | |
| <ol> | |
| <li> | |
| Click the Manage Configurations button in the Project Properties | |
| dialog box. | |
| </li> | |
| <li> | |
| In the Configurations dialog box, select the configuration that most | |
| closely matches your desired configuration. In this case, select the | |
| Release configuration and click the Duplicate button. Then click Rename. | |
| </li> | |
| <li> | |
| In the Rename dialog box, rename the | |
| configuration to PerformanceRelease. Click OK. | |
| </li> | |
| <li>Click OK in the Configurations dialog box.</li> | |
| <li> | |
| In the left panel, select the C Compiler node. | |
| </li> | |
| <li> | |
| In the Project Properties dialog box, note that the PerformanceRelease | |
| configuration is selected in the Configuration drop-down list. | |
| </li> | |
| <li> | |
| In the property sheet in the right panel, change the Development | |
| Mode from Release to PerformanceRelease. Click OK. | |
| </li> | |
| </ol> | |
| <p> | |
| You have created a new configuration that will compile the application with a | |
| different set of options. | |
| </p> | |
| <h3><a name="FileProperties"></a>Setting Source File Properties</h3> | |
| <p> | |
| <p>When you set the project properties for your C or C++ project, the relevant | |
| properties apply to all files in the project. You can also set some | |
| properties on individual files. | |
| </p> | |
| <ol> | |
| <li> | |
| Right-click the <tt>newfile.cpp</tt> source file in the Projects tab and choose Properties. | |
| </li> | |
| <li>Click the General category and see that you can specify a different compiler | |
| or other tool to build this file. You can also use a checkbox to exclude the file | |
| from the build of the currently selected project configuration. | |
| <li>Click the C++ Compiler category and see that you can override the project compiler settings | |
| and other properties for this file.</li> | |
| <li>Cancel the File Properties dialog box.</li> | |
| </ol> | |
| <h3><a name="BuildingProject"></a>Building and Rebuilding Your Project</h3> | |
| <p>To build your project: | |
| <ol> | |
| <li> | |
| Right-click the project node and choose Build, and the project | |
| builds. The build output is shown in the Output window. | |
| </li> | |
| <li> | |
| Switch the configuration from Debug to PerformanceRelease in the configuration | |
| drop-down list in the main toolbar. Now the project will be built using the | |
| PerformanceRelease configuration. | |
| </li> | |
| <li> | |
| Right-click the project node and choose Build, and the project | |
| builds. The build output is shown in the Output window. | |
| </li> | |
| </ol> | |
| <p>To rebuild your project:</p> | |
| <ul><li>Right-click the project node and choose Clean and Build to do | |
| a complete rebuild after removing previous build products.</li> | |
| <li>Right-click the project node and choose Build to do an incremental build. | |
| Previous build products are retained if their source files have not changed.</li></ul> | |
| <p> | |
| You can build, clean, or both clean and build the project | |
| by choosing actions from the Run menu or using tool bar buttons. | |
| The project also keeps object | |
| files and executables from different configurations separate, so | |
| you do not have to worry about mixing files from multiple configurations. | |
| </p> | |
| <h3><a name="CompilingFile"></a>Compiling a Single File</h3> | |
| <p> | |
| To compile a single source file: | |
| </p> | |
| <ul> | |
| <li> | |
| Right-click on the <tt>main.cpp</tt> file and choose | |
| Compile File. Only this file is compiled. | |
| </li> | |
| </ul> | |
| <p class="notes"> | |
| Single file compilation is not supported for the project type | |
| C/C++ Project With Existing Sources. | |
| </p> | |
| </div> | |
| <h2><a name="running"></a>Running a Project</h2> | |
| <p> | |
| To see how to run a project, you will use the IDE's sample <tt>Arguments</tt> project. | |
| The <tt>Arguments</tt> program prints command-line arguments. Before running the | |
| program, you will set some arguments in the current configuration. Then you will run | |
| the program. | |
| </p> | |
| <p> | |
| To create the <tt>Arguments</tt> project, set some arguments, and run the project: | |
| </p> | |
| <ol> | |
| <li>Choose File > New Project.</li> | |
| <li>In the project wizard, expand the Samples category.</li> | |
| <li>Select the C/C++ subcategory, then select the <tt>Arguments</tt> project. Click | |
| Next, then click Finish. | |
| </li> | |
| <li>Right-click the <tt>Arguments_1</tt> project node and choose Build. The | |
| project builds.</li> | |
| <li>Right-click the <tt>Arguments_1</tt> project node and choose Properties.</li> | |
| <li>In the Project Properties dialog box, select the Run node.</li> | |
| <li> | |
| In the Run Command text field, type 1111 2222 3333. Click OK. | |
| <br> | |
| <img src="../../../images_www/articles/72/cnd/quickstart/setting_arguments.png" alt="Screenshot of the Project Properties | |
| dialog box" class="margin-around"> | |
| </li> | |
| <li>Right-click the project node and choose Run.The application runs. | |
| Your arguments are displayed in the Output window.</li> | |
| </ol> | |
| <h2><a name="existingsourcesprojects"></a>Creating a C/C++ Project With Existing Sources</h2> | |
| <p>When creating a C/C++ Project With Existing Sources, the IDE relies on your | |
| existing makefile for instructions on how to compile and run your application. </p> | |
| <p>In this exercise, you download and install the sources for the open source Loki C++ library. Loki | |
| requires the Pthreads library to build, which is available by default on Linux, Solaris, and Mac OS X. If you | |
| are using Windows, you must download the Pthreads library before you can create a project | |
| using the Loki source files.</p> | |
| <div class="indent"> | |
| <h3><a name="CreateExistingSourcesProject"></a>Creating a Project | |
| With Existing Sources</h3> | |
| <ol> | |
| <li>If you are running the IDE on Windows, install the | |
| Pthreads library from <a href="http://sourceware.org/pthreads-win32" target="_blank"> | |
| <tt>http://sourceware.org/pthreads-win32</tt></a>. | |
| <p>For convenience, you can use this | |
| <a href="ftp://sourceware.org/pub/pthreads-win32/pthreads-2005-03-08.exe">direct link</a> | |
| to the pthreads-2005-03-08.exe installer.</p> | |
| <p> | |
| Extract the pthreads library in your Windows user directory.</p> | |
| </li> | |
| <li>Download the <tt>loki-0.1.7</tt> library from | |
| <a href="http://sourceforge.net/projects/loki-lib" target="_blank"> | |
| <tt>http://sourceforge.net/projects/loki-lib</tt></a>. | |
| </li> | |
| <li>Uncompress <tt>loki-0.1.7</tt> in a directory of your choice. | |
| </li> | |
| <li>Open the New Project wizard by choosing File > New Project. | |
| </li> | |
| <li>Select the C/C++ category.</li> | |
| <li>Select C/C++ Project With Existing Sources and click Next.</li> | |
| <li>On the Select Mode page, click the Browse button. In the Select Project Folder | |
| dialog box, navigate to the | |
| directory where you saved | |
| <tt>loki-0.1.7</tt>. Select the <tt>loki-0.1.7</tt> directory. | |
| Click Select. | |
| <br><br> | |
| <img src="../../../images_www/articles/72/cnd/quickstart/existing_sources_project1.png" alt="Screen shot of | |
| Select Mode page of Project Wizard" class="margin-around b-all"> | |
| <br><br> | |
| </li> | |
| <li>Use the default Configuration Mode, Automatic. Click Finish. | |
| <p> | |
| The project is created and opened in the Projects tab, and the IDE | |
| automatically runs the Clean and Build actions specified in the existing Makefile. The project | |
| is also automatically configured for code assistance.</p> | |
| <img src="../../../images_www/articles/72/cnd/quickstart/existing_sources_project2.png" alt="Screen shot of successful | |
| make of Project with Existing Sources" class="margin-around"> | |
| </li> | |
| </ol> | |
| <h3><a name="frombinaryprojects"></a>Creating a C/C++ Project from a Binary File</h3> | |
| <p>You can create a C/C++ project from an existing binary file.</p> | |
| <ol> | |
| <li>Choose File > New Project.</li> | |
| <li>Select the C/C++ category.</li> | |
| <li>Select C/C++ Project from Binary File and click Next. | |
| </li> | |
| <li><p>On the Select Binary File page of the New Project wizard, | |
| click the Browse button. In the Select Binary File dialog box, navigate to | |
| the binary file from which you want to create a project. </p> | |
| <p>The | |
| root directory for the source files from which the binary was built is filled | |
| in automatically. By default, only the source files from which the binary | |
| was built are included in the project. By default, dependencies are included | |
| in the project. The shared libraries required by the project are automatically | |
| listed.</p> | |
| <img src="../../../images_www/articles/72/cnd/quickstart/binary_project.png" alt="Screeb shot of Select Binary File page in New Project Wizard" class="margin-around"> | |
| </li> | |
| <li>Click Next.</li> | |
| <li>On the Project Name and Location page, you can choose the | |
| name and location of the project. Click Finish.</li> | |
| </ol> | |
| <h3><a name="BuildingRebuilding"></a>Building and Rebuilding Your Project</h3> | |
| <p>To build the project: | |
| <ul> | |
| <li>Right-click the project node of the project and choose Build.</li> | |
| </ul> | |
| <p>To rebuild the project: | |
| <ul> | |
| <li>Right-click the project node of the project and choose Clean and Build.</li> | |
| </ul> | |
| </div> | |
| <h2><a name="nextsteps">Next Steps</a></h2> | |
| <p>See <a href="navigating-editing.html">Editing and Navigating C/C++ | |
| Source Files</a> for a tutorial on using the advanced navigation and | |
| editing features in NetBeans IDE to view and modify your source code. | |
| </p> | |
| <p>See the | |
| <a href="https://netbeans.org/kb/trails/cnd.html">C/C++ Learning Trail</a> for | |
| more articles about developing with C/C++/Fortran in NetBeans IDE.</p> | |
| <div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=Feedback:%20C/C++%20Projects%20Quick%20Start%20-%20NetBeans%20IDE%207.4%20Tutorial">Send Feedback on This Tutorial</a></div> | |
| </body> | |
| </html> |