blob: 6207c5b214551858453a9f76807200889142ebc8 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CDT projects</title>
<link rel="stylesheet" type="text/css" href="../help.css">
</head>
<body>
<h1>CDT projects</h1>
<p>Before you do any work in the CDT, you must create a project to store your
source code, makefiles, binaries and related files. C/C++ projects are displayed
in the C/C++ Projects view.</p>
<p><b>Tip:</b> Nested projects are not supported. Each project must be organized as a
discrete entity. Project dependencies are supported by allowing a project
to reference other projects that reside in your workspace. For more information,
see <a href="../tasks/cdt_t_proj_ref.htm">Selecting referenced projects</a>.</p>
<p>For more information about projects and where they are stored, see:</p>
<ul>
<li> <b>Workbench User Guide &gt; Tasks &gt; Resources</b></li>
<li> <b>Workbench User Guide &gt; Tasks &gt; Running Eclipse</b></li>
</ul>
<h2>Project types</h2>
<p>You can create a standard make C or C++ project or a managed make C or C++
project.</p>
<h3>Standard Make C or C++ project</h3>
<p>You need to create a makefile in order to build your project or use an
existing makefile.</p>
<h3>Managed Make C or C++ project</h3>
<p>A managed make project generates the makefile for you. In addition, the
files module.dep and module.mk are created for every project sub-directory.
These files are required for your managed make project to successfully build.</p>
<h3>How the CDT associates project natures</h3>
<p>Projects are assigned natures and tags that identify the
properties of each project. The CDT uses natures to identify what can and cannot be done with each project. The
CDT also uses natures to filter out projects that are contextually
irrelevant; for example, non-library projects from a list of library projects.</p>
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="56%">
<tr>
<th align="left" width="63%">Project</td>
<th align="left" width="37%">Associated natures</td>
</tr>
<tr>
<td width="63%">Standard Make C Project</td>
<td width="37%">C, make</td>
</tr>
<tr>
<td width="63%">Managed Make C Project</td>
<td width="37%">C, gen make</td>
</tr>
<tr>
<td width="63%">Standard Make C++ Project</td>
<td width="37%">C, C++</td>
</tr>
<tr>
<td width="63%">Managed Make C++ Project</td>
<td width="37%">C, C++</td>
</tr>
</table>
<h2>Project conversion</h2>
<p>You can convert a C project to a C++ project and vice versa. An example of
when this may be useful is if you create a C project, your requirements change during the course of
the development, and you
need to continue coding in C++. Since the initial project was coded in C,
the parser will not recognize certain semantics such as &quot;class&quot;, or keywords
such as
&quot;public&quot;, &quot;private&quot;, and&nbsp; &quot;template&quot;. You need to create a C++ project to
make the parser and other tools aware of the language change. You can simply
convert your C project to a C++ project rather than creating a new C++ project, copying your project files over and resolving source control issues.</p>
<h2>A few notes about projects</h2>
<ul>
<li>When you create a file within a project, a record (local
history) is created of every time that you modify the file and how you modify it.
For more information about local history, see <b>Workbench User Guide &gt; Reference &gt; User interface
information &gt; Development environment &gt; Local history</b>.</li>
<li>Spaces in projects and filenames can cause problems with some
tools, such as the make utility or the compiler.</li>
<li>Be careful when using case alone to between distinguish files and projects. UNIX-based
operating system
filenames are case-sensitive, but Windows filenames are not. Therefore, Hello.c and
hello.c overwrite each other in Windows, but are separate files in UNIX.</li>
</ul>
<p>For more information about projects, see <b>Workbench User Guide &gt; Concepts &gt; Workbench &gt; Resources</b>.</p>
<p><img border="0" src="../images/ngconcepts.gif" ALT="Related concepts" width="143" height="21">
<br>
<a href="cdt_c_proj_file_views.htm">Project file views</a><br>
<a href="../getting_started/cdt_w_existing_code.htm">How to bring C/C++ source into Eclipse</a></p>
<p><img border="0" src="../images/ngtasks.gif" ALT="Related tasks" width="143" height="21">
<br>
<a href="../tasks/cdt_o_proj_prop.htm">Defining project properties</a><br>
<a href="../tasks/cdt_o_proj_files.htm">Working with C/C++ project files</a></p>
<p><img border="0" src="../images/ngref.gif" ALT="Related reference" width="143" height="21">
<br>
<a href="../reference/cdt_o_proj_prop_pages.htm">Project properties</a><br>
<a href="../reference/cdt_o_views.htm">Views</a></p>
<img src="../images/ng03_04.gif" ALT="IBM Copyright Statement" BORDER=0 width="324" height="14">
</body>
</html>