carbidecpp22devenv/configuration/org.eclipse.osgi/bundles/309/1/.cp/concepts/cdt_c_projects.htm
changeset 5 684bf18fdedf
equal deleted inserted replaced
4:4764c8c88759 5:684bf18fdedf
       
     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
       
     2 <html lang="en">
       
     3 
       
     4 <head>
       
     5 	<meta http-equiv="Content-Language" content="en-us">
       
     6 	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       
     7 	<title>CDT projects</title>
       
     8 	<link rel="stylesheet" type="text/css" href="../help.css">
       
     9 </head>
       
    10 <body>
       
    11 
       
    12 <h1>CDT projects</h1>
       
    13 
       
    14 <p>Before you can work in the CDT, you must create a project to store your 
       
    15 source code, makefiles, binaries, and related files. C/C++ projects are displayed 
       
    16 in the C/C++ Projects view.</p>
       
    17 
       
    18 <p><b>Tip:</b> Nested projects are not supported. Each project must be organized as a 
       
    19 discrete entity. Project dependencies are supported by allowing a project 
       
    20 to reference other projects that reside in your workspace. For more information, 
       
    21 see <a href="../reference/cdt_u_prop_general_pns_ref.htm">Selecting referenced projects</a>.</p>
       
    22 
       
    23 <p>For more information about projects and where they are stored, see:</p>
       
    24 
       
    25 <ul>
       
    26   <li> <b>Workbench User Guide &gt; Tasks &gt; Resources</b></li>
       
    27   <li> <b>Workbench User Guide &gt; Tasks &gt; Running Eclipse</b></li>
       
    28 </ul>
       
    29 
       
    30 <h2>Project types</h2>
       
    31 
       
    32 <p>You can create a C or C++ project.</p>
       
    33 
       
    34 <p>To build your project, you can either create your own makefile,
       
    35 or let CDT generate the makefiles for you automatically.</p>
       
    36 
       
    37 <p>You can toggle these modes (generate makefiles or not) 
       
    38 at any time for existing project. Use <a href="../reference/cdt_o_proj_prop_pages.htm">properties.</a> </p>
       
    39 
       
    40 <p>When you create a new project, you are required to specify the project type. This project type will determine the toolchain and data, and tabs that the CDT uses. In the New CDT Project Wizard, you can choose from the following project types:</p>
       
    41 	<ul>
       
    42 	<li><b>Executable</b> - Provides an executable application. This project type folder contains three templates.</p>
       
    43 	<ul>
       
    44 	<li><b>Hello World C++ Example</b> provides a simple C++ Hello World application with main().
       
    45 	<li><b>Hello World ANSI C Example</b> provides a simple C Hello World application with main().<li><b>Empty Project</b> provides a single source project folder that contains no files.
       
    46 </ul>
       
    47 
       
    48 <p>After you select a template, the result is a project with only the meta-data files required for the project type. You are expected to modify these source files, as required, and provide source files for the project's target.</p><p>The makefile for the <b>Executable</b> project type is automatically created by the CDT.</p>
       
    49 		<li><b>Shared Library</b> - An executable module that is compiled and linked separately. When you create a project that uses a shared library (libxx.so), you define your shared library's project as a Project Reference for your application. For this project type, the CDT combines object files together and joins them so they're relocatable and can be shared by many processes. Shared libraries are named using the format
       
    50 libxx.so.<var>version</var>, where
       
    51 <var>version</var> is a number with a default of 1. The
       
    52 libxx.so file usually is a symbolic link to the
       
    53 latest version.</p><p>The makefile for this project type is automatically created by the CDT.
       
    54 		<li><b>Static Library</b> - A collection of object files that you can link into another application (libxx.a). The CDT combines object files (i.e. *.o)
       
    55 into an archive (*.a) that is directly linked into an
       
    56 executable.</p><p>The makefile for this project type is automatically created by the CDT.
       
    57 		<li><b>Makefile Project</b> - Creates an empty project without the meta-data files. This selection is useful for importing and modifying existing makefile-based projects; a new makefile is not created for this project type. 
       
    58 	</ul> 
       
    59 
       
    60 <h2>Project conversion</h2>
       
    61 
       
    62 <p>You can convert projects from C to C++ (or from C++ to C).  If, for 
       
    63 example, your requirements change and you must convert an existing C project to C++, 
       
    64 you can do this without recreating the project.  The CDT converts your project files and 
       
    65 resolves any source control issues.</p>
       
    66 
       
    67 <h2>A few notes about projects</h2>
       
    68 
       
    69 <ul>
       
    70   <li>When you create a file within a project, a record (local history) of 
       
    71   every change is created. For more information about local history, see 
       
    72   <b>Workbench User Guide &gt; Reference &gt; User interface 
       
    73   information &gt; Development environment &gt; Local history</b>.</li>
       
    74   <li>Spaces in projects and filenames can cause problems with some 
       
    75 tools, such as the make utility or the compiler.</li>
       
    76   <li>Be careful when you use only case to distinguish files and projects. UNIX-based 
       
    77   operating system file names are case sensitive, but Windows filenames are not. Therefore, Hello.c and 
       
    78 hello.c are separate files in UNIX but overwrite each other in Windows.</li>
       
    79 </ul>
       
    80 
       
    81 
       
    82 <p>For more information about projects, see <b>Workbench User Guide &gt; Concepts &gt; Workbench &gt; Resources</b>.</p>
       
    83 
       
    84 
       
    85 <p><img border="0" src="../images/ngconcepts.gif" ALT="Related concepts" width="143" height="21">
       
    86 <br>
       
    87 <a href="cdt_c_proj_file_views.htm">Project file views</a><br>
       
    88 <a href="../getting_started/cdt_w_existing_code.htm">How to bring C/C++ source into Eclipse</a></p>
       
    89 <p><img border="0" src="../images/ngtasks.gif" ALT="Related tasks" width="143" height="21">
       
    90 <br>
       
    91 <a href="../tasks/cdt_o_proj_files.htm">Working with C/C++ project files</a><br>
       
    92 <a href="../tasks/cdt_t_conv_proj.htm">Converting a C or C++ nature for a project</a>
       
    93 </p>
       
    94 <p><img border="0" src="../images/ngref.gif" ALT="Related reference" width="143" height="21">
       
    95 <br>
       
    96 <a href="../reference/cdt_o_proj_prop_pages.htm">Project properties</a><br>
       
    97 <a href="../reference/cdt_o_views.htm">Views</a></p>
       
    98 
       
    99 
       
   100 <img src="../images/ng00_04a.gif" ALT="IBM Copyright Statement" >
       
   101 
       
   102 </body>
       
   103 
       
   104 </html>