blob: e4f325e56a446f4b60f515c6efe8e3136a77cb7f [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>NetBeans IDE - C and C++ Development</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../netbeans.css" type="text/css">
<link rel="stylesheet" type="text/css" href="../../features.css">
<meta name="description" content="NetBeans IDE - integrated tools for C and C++ developers">
<meta http-equiv="content-language" content="en">
</head>
<body>
<h1>C and C++ Development</h1>
<p> <a href="../../images_www/v7/screenshots/cnd.png"><img
src="../../images_www/v7/screenshots/cnd-cut.png" class="box"
alt="C and C++ features in NetBeans IDE"
style="border: 0px solid ; width: 638px; height: 242px;"></a>
<a href="../../images_www/v7/1/screenshots/cnd.png"><span class="font-11"><br>
Click image for fullscreen preview</span></a> </p>
<p class="intro">Develop professional native applications in C, C++, and
Fortran for a variety of platforms including Windows, Linux, OS X,
and the Solaris operating system.</p>
<span class="overview-right" >
<img src="../../images_www/v6/5/features/cpp-editor.png"
alt="C and C++ source code editor" class="box" width="200" height="94"><br/><br/>
<img src="../../images_www/v7/2/features/cpp-11.png"
alt="C++11 support" class="box" width="200" height="48">
</span>
<h2>C and C++ Projects</h2>
<p> NetBeans IDE includes project types for C and C++ and
appropriate project templates. You can work with and create C/C++
applications with dynamic and static libraries, and you can also create
C/C++ projects from existing code. C/C++ projects also support Fortran
and Assembler files.</p>
<p>Users can now easily create new projects from scratch by
simply dragging-and-dropping a binary file to IDE. The project system
automatically finds the source files, adds them to the project,
configures code assistance and even explores project dependencies.
Users also now have more flexibility in configuring the &quot;Run&quot; and &quot;Debug&quot; command
and thus can run and debug static and dynamic libraries.</p>
<div class="line">&nbsp;</div>
<span class="overview-left" >
<img src="../../images_www/v6/features/cpp-debugger_200px.jpg"
alt="C and C++ debugger" class="box" width="200" height="66"><br/><br/><img style="width: 200px; height: 114px;"
src="../../images_www/screenshots/7.0/cnddebugger-eval-window.png"
alt="C and C++ Debugger Evaluation Window" class="box">
</span>
<h2>GNU Debugger Integration</h2>
<p> The C and C++ editor is well integrated with the
multi-session GNU gdb debugger. You can set variable, exception, system call, line, and function
breakpoints and view them in the Breakpoints window. Inspect the call
stack and local variables, create watches, and view threads. You can
evaluate a selected expression by moving the cursor over it and viewing
the tooltip. The Disassembler window displays the assembly instructions
for the current source file. </p>
<p>Added support for Pretty Printing allows users to analyze variables with STL types in a user-friendly presentation in the Variables or Watches view.</p>
<p>The &quot;Expression evaluation&quot; window enables users to
evaluate any custom expression in the current program context. </p>
<div class="line">&nbsp;</div>
<span class="overview-right" >
<img
style="width: 200px; height: 175px;"
src="../../images_www/screenshots/7.0/cnd-template-annotations.png"
alt="C and C++ Template Annotations Window" class="box">
</span>
<h2>Code Assistance</h2>
<p> Benefit from faster code completion and refactoring for C/C++
and Qt files, including code completion and navigation for preprocessor
directives and preprocessor blocks. Refactorings are available in the
Editor, Class View and Navigator. Use them to change method parameters
and to generate basic field encapsulation code (Alt+Insert). Spell
checking is available in comments and literals.</p>
<div class="line">&nbsp;</div>
<table>
<tr>
<td class="valign-top"><h2>C and C++ Editor</h2></td>
<td class="valign-top"><h2>C++11 Support</h2></td>
<td class="valign-top"><h2>Unit Testing</h2></td>
</tr>
<tr>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p> The C/C++ editor comes with syntactic and semantic
highlighting, automatic indentation and formatting (including a choice
of formatting styles), bracket matching, code folding, and templates. </p>
</td>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p>NetBeans IDE for C++ offers a number of features specific to
developing with C++11. The C++11 features are available in the editor, code assistance, navigation, and project system.</p>
</td>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p> You can create and run C/C++ tests right from the IDE. Test
results are displayed in a clear and user-friendly way. </p>
</td>
</tr>
<tr>
<td class="valign-top"><h2>Compiler Configurations</h2></td>
<td class="valign-top"><h2>Packaging</h2></td>
<td class="valign-top"><h2>Qt Toolkit Support</h2></td>
</tr>
<tr>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p> The NetBeans IDE supports a variety of leading compilers,
such as the Oracle Solaris Studio,&nbsp; GNU, CLang/LLVM, Cygwin, and MinGW compilers. You can specify your
compiler, pre-processor definitions, compile-time options, language standards (e.g., C++11), and much
more. </p>
</td>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p> You can configure your project to have it automatically
package your compiled applications as either TAR files, ZIP files, SVR4
packages, RPMs, or Debian packages. </p>
</td>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p> Use the Qt application development framework to create Qt
files, such as GUI forms, resources, and translations. Standard Qt
editing tools such as the Qt Designer for form files and Qt Linguist
for translations are launched automatically as needed. Qt-specific
project properties allow you to fine-tune the generated qmake project
file. </p>
</td>
</tr>
<tr>
<td class="valign-top"><h2>Source Inspection</h2></td>
<td class="valign-top"><h2>Remote Development</h2></td>
<td class="valign-top"><h2>File Navigation</h2></td>
</tr>
<tr>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p> You can inspect the class inheritance hierarchy, a header's
include hierarchy, the type hierarchy, and more. Use the Classes window
to navigate class hierarchies: See all classes in your project, and
also members and fields for each class. The Call Graph window shows all
callers/callees of the selected function. You can choose between a
direct call graph and a reverse call graph as well as change graph
layout. Macroview is available to help understand how code would look
after preprocessing. Use the Overrides/Is Overridden annotations to
navigate between parent and descendant classes. Navigation between
generic template and template specializations is also available through
corresponding annotations.</p>
</td>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p> Use development tools on remote hosts to build, run, and even
debug projects from your client system as simple as if it is done
locally. Different methods of synchronization with the remote host
provide necessary reliability, performance and simplicity. Navigation
through remote file system is now straight forward and available where
it is logically expected.
</p>
<p>Explore a new Remote Toolbar (View &gt; Toolbars &gt; Remote) that allows you to switch hosts, open projects from and create new projects at a remote host.
</p>
</td>
<td class="valign-top" style="width:33%;padding-right:10px;">
<p>Use the Go To File, Go To Type, and Go To Symbol actions to quickly navigate on an element of interest. Hyperlinks allow you to switch between usage and declaration of anything under the cursor with a single click.</p>
<p>The Go to Header/Source button available in the editor toolbar allows to quickly switch between source and header files.</p>
<p>The Usages window shows where a class (structure), function, variable, macro, #include directive, or file is used in your project's source code. Remote file systems are supported as well.</p>
</td>
</tr>
</table>
<h2>See Also</h2>
<ul class="bigger">
<li><a href="/community/releases/81/index.html">NetBeans IDE 8.1 Release Page</a> for a list of specific features in the latest stable release.</li>
<li><a href="../../kb/trails/cnd.html">C/C++ Learning Trail</a> for tutorials that will help you get started.</li>
</ul>
</body>
</html>