blob: 915c47f13f10e51e1120f7836e89139f3fea9abd [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.ord/TR/html4/loose.dtd">
<html>
<head>
<title>IDE Concepts</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<hr>
<h1><a name="id1">IDE Concepts</a></h1>
<p>
This chapter introduces a number of terms and concepts that are used throughout this
guide and the core Eclipse documentation.</p>
<p>Related information:</p>
<ul>
<li>the <cite>Workbench User Guide</cite>: <b>Concepts</b> in the Eclipse documentation</li>
</ul>
<p></p>
In this chapter:
<ul>
<li><a href="#work">Workbench</a>
</li>
<li><a href="#pers">Perspectives</a>
</li>
<li><a href="#edit">Editors and views</a>
</li>
<li><a href="#proj">Projects and workspace</a>
</li>
<li><a href="#host">Host and target machines</a>
</li>
<li><a href="#targ">Target agent and the <tt>qconn</tt> daemon</a>
</li>
<li><a href="#laun">Launcher</a>
</li>
<li><a href="#reso">Resources</a>
</li>
<li><a href="#wiza">Wizards</a></li>
</ul>
<h1><a name="work">Workbench</a></h1>
<p>The <i>workbench</i> is the window that appears when you run the IDE. It includes:</p>
<ul>
<li>views
</li>
<li>editors
</li>
<li>the main menu
</li>
<li>the control bars.</li>
</ul>
<p></p>
<p></p>
<hr>
<p><img src="./images/first_look.jpg" alt="IDE Concepts; workbench with C/C++ Development perspective"></p>
<hr>
<p><i>Major components of the IDE workbench.</i></p>
<pre>
</pre>
<hr>
<table>
<tr><td valign="top"><img src="image-lib/pointing.gif" alt="Note:"></td>
<td>Eclipse is written in JAVA and is interpreted by a Java Virtual Machine (JVM)
that's specific to the host OS. So, whether you run Eclipse on Windows,
QNX Neutrino, or Solaris, you're running the same code. However, you might
notice some differences in the user interface.</td></tr>
</table>
<hr>
<p>The CDT provides a graphical development environment for C and C++
developers. The CDT works in a complimentary manner with many of the
same tools that you use on the command line. The CDT communicates with
and interprets messages from many utilities, including:</p>
<ul>
<li><tt>make</tt></a>
(which drives compilers such as <tt>gcc</tt></a>)
</li>
<li><tt>gdb</tt></a>
</li>
<li><tt>ctags</tt></a></li>
</ul>
</p>
<h1><a name="pers">Perspectives</a></h1>
<p>A <i>perspective</i> is a task-oriented configuration of the workbench window.</p>
<p>
For example, if you're debugging, you use the preconfigured <b>Debug</b>
perspective. This perspective sets up the IDE to show all the tools related to
debugging, but doesn't show the elements and tools related to profiling, for example.
You can customize a perspective by adding and removing views.<p>
Perspectives generally consist of these components:</p>
<ul>
<li>toolbars
</li>
<li>editors
</li>
<li>views</li>
</ul>
<h1><a name="edit">Editors and views</a></h1>
<p>
<i>Editors</i> are what you use to change the content of your files. Each editor
in the IDE is for a specific set of files. The editor that you'll likely use
the most for C and C++ development is the <b>C/C++ Editor</b>.</p>
<p>
<i>Views</i> take information and organize it in various convenient ways.
For example, the <b>Outline</b> view shows you a list of all the function
names when you're editing a C file in the <b>C/C++ Editor</b>.
The <b>Outline</b> view is dynamic; if you declare a function called <i>mynewfunc()</i>, the <b>Outline</b> view immediately lists it, even if you haven't saved the file yet.</p>
<p>Views provide:</p>
<ul>
<li>insight into editor contents (e.g. <b>Outline</b> view)
</li>
<li>navigation (e.g. <b>Navigator</b> view)
</li>
<li>information (e.g. <b>Tasks</b> view)
</li>
<li>control (e.g. <b>Debug</b> view).</li>
</ul>
<p></p>
<p>
Different views may show you different interpretations of the same
information. For example, the <b>Navigator</b> view shows all
your projects; the <b>C/C++ Projects</b> view shows just the
C and C++ projects you have open.</p>
<p>
The <i>editor area</i> is a section of the workbench window reserved for editors. All the editors live together in the editor area; all the views can be anywhere except in the editor area.</p>
<p>
The IDE lets you rearrange views and editors so they're beside each other (tiled) or stacked on top of each other (tabbed), among other possibilities.</p>
<p>
To see how dynamic the interface is, see the <cite>Perspectives, Views, and Editors</cite> movie.
</p>
<h1><a name="proj">Projects and workspace</a></h1>
<p><i>Projects</i> are generic containers for your source code, makefiles,
and binaries. Before you do any work in the IDE, you must create projects to
store your work. Developers using the CDT will most ofent work with <b>C Project</b>.</p>
<p>Projects can be open or closed. If they're closed, you can't access them.</p>
<p>When you create a file within a project, the IDE also creates a record
(local history) of every time you changed that file and how you changed it.</p>
<p>
Your <i>workspace</i> is where you keep your projects. For the exact location of your workspace, see the appendix <a href="file.html">Where Files Are Stored</a>.</p>
<p></p>
<hr>
<table>
<tr><td valign="top"><img src="image-lib/pointing.gif" alt="Note:"></td>
<td>Don't use spaces in projects and filenames; they can cause problems with some tools, such as the <tt>make</tt> utility.
<p>Also, don't use case alone to distinguish files and projects; Unix-based OS filenames are case-sensitive, but Windows filenames aren't. Thus, <tt>Hello.c</tt> and <tt>hello.c</tt> overwrite each other in Windows, but are separate files elsewhere. </p></td></tr>
</table>
<hr>
<h2><a name="id7">How the IDE looks at projects</a></h2>
<p>The IDE associates projects with <i>natures</i>, tags that tell the IDE about the properties of each project.
</p>
<p>The IDE doesn't support nested projects; each project must be organized as a discrete entity. The IDE does support project dependencies by allowing a project to reference other projects that reside in your workspace. </p>
<p>
The most common projects look like this to the IDE:</p>
<table border=1 width="100%">
<tr>
<th>Project </th>
<th>Associated natures</th>
</tr>
<tr>
<td><b>Simple Project</b> </td>
<td>&nbsp;</td>
</tr>
<tr>
<td><b>Standard Make C Application Project</b> </td>
<td>C</td>
</tr>
<tr>
<td><b>Standard Make C++ Application Project</b> </td>
<td>C, C++</td>
</tr>
</table>
<p>The natures tell the IDE what can and can't be done with each project. The IDE also uses the natures to filter out projects that would be contextually irrelevant (e.g. nonlibrary projects from a list of library projects).</p>
<p>
In this guide, you'll see mixed references such as:</p>
<ul>
<li><b>QNX C/C++ Applications</b> -- refers to both <b>QNX C Application Projects</b> and <b>QNX C++ Application Projects</b>.
</li>
<li><b>QNX Library Projects</b> -- refers to both <b>QNX C Library Projects</b> and <b>QNX C++ Library Projects</b>.</li>
</ul>
<p>The IDE saves these natures and other information in <tt>.project</tt> and <tt>.cdtproject</tt> files in each project. To ensure the natures persist in CVS, include these files when you commit your project.
</p>
<h1><a name="laun">Launcher</a></h1>
<p>Before you run any program, you must use the launcher to specify what
program to run, what arguments to pass to the program, and so on. </p>
<p>
If you want to run the program with different you can either modify
an existing launch configuration or create a new <b>Launch Configuration</b>.
Once you save the <b>Launch Configuration</b>, you can quickly rerun
each configuration.
</p>
<h1><a name="reso">Resources</a></h1>
<p><i>Resources</i> is a collective term for projects, folders, and files that exist in the workbench. You store all your resources in your workspace.</p>
<h1><a name="wiza">Wizards</a></h1>
<p><i>Wizards</i> guide you through a sequenced set of tasks. For example, to create a <b>QNX C Application Project</b>, you run a wizard that takes you through all the steps and gathers all the necessary information before creating the project. For more information, see the <a href="cwiz.html">Common Wizards</a> chapter.</p>
<p>
</p>
</body>
</html>
<!--
/**********************************************************************
* Copyright (c) 2002,2003 QNX Software Systems Ltd. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* QNX Software Systems - Initial API and implementation
***********************************************************************/
-->