carbidecpp22devenv/configuration/org.eclipse.osgi/bundles/309/1/.cp/concepts/cdt_c_build_over.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 <head>
       
     4   <meta http-equiv="Content-Language" content="en-us">
       
     5   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       
     6   <title>Building C/C++ projects</title>
       
     7   <link rel="stylesheet" type="text/css" href="../help.css">
       
     8 </head>
       
     9 <body>
       
    10 <h1>Building C/C++ projects</h1>
       
    11 <p>The CDT relies on an external make utility, such as GNU make, to
       
    12 build a project. The CDT can generate makefiles automatically when you
       
    13 create a Managed Make C project or a Managed Make C++ project. You have
       
    14 the option of creating a Standard Make C project or a Standard Make C++
       
    15 project and providing the makefile yourself.</p>
       
    16 <h2>Required utilities</h2>
       
    17 <p>You must install and configure the following utilities:
       
    18 </p>
       
    19 <ul>
       
    20   <li>Build (e.g. make).</li>
       
    21   <li>Compile (e.g. gcc).</li>
       
    22   <li>Debug (e.g. gdb).</li>
       
    23 </ul>
       
    24 <b>Note: </b> while make, gcc and gdb are the examples used in the
       
    25 documentation, virtually any similar set of tools or utilities could be
       
    26 used.
       
    27 <p></p>
       
    28 <p><b>Tip: </b>Cygwin contains these utilities (make, gcc and gdb) for
       
    29 a Windows environment.&nbsp; While running the cygwin installation,
       
    30 ensure <tt>gcc</tt> and <tt>make</tt> are selected since they are not
       
    31 installed by default. For more information, see <a
       
    32  href="http://www.cygwin.com">http://www.cygwin.com</a>. If you are a
       
    33 Red Hat user, all that you need to do to build your project is included
       
    34 in the Red Hat Linux installation.
       
    35 For other operating systems, please refer to your installation
       
    36 documentation.</p>
       
    37 <p></p>
       
    38 <h2>Build terminology</h2>
       
    39 <p>The CDT uses a number of terms to describe the scope of the build. </p>
       
    40 <h3>Build Project</h3>
       
    41 <p>This is an incremental build (make all, assuming all is defined in
       
    42 your makefile). Only the components affected by modified files in that
       
    43 particular project are built.</p>
       
    44 <h3>Rebuild Project</h3>
       
    45 <p>Builds every file in the project whether or not a file has been
       
    46 modified since the last build. A rebuild is a clean followed by a build.</p>
       
    47 <p>For more information on builds, see:</p>
       
    48 <ul>
       
    49   <li><b>Workbench User Guide &gt; Concepts &gt; Workbench &gt; Builds</b></li>
       
    50   <li><b>Workbench User Guide &gt; Tasks &gt; Building resources</b></li>
       
    51 </ul>
       
    52 <p>Build-related information is displayed as follows:</p>
       
    53 <ul>
       
    54   <li>The Console view displays the output of the build tools.</li>
       
    55   <li>The Tasks view displays a list of compiler errors and warnings
       
    56 related to your projects.</li>
       
    57   <li>For Standard Make projects, the Makefile targets are displayed in
       
    58 the Make Targets view.</li>
       
    59 </ul>
       
    60 <p>For more information about the Tasks view, see <b>Workbench User
       
    61 Guide &gt; Reference &gt; User interface information &gt; Views and
       
    62 editors &gt; Tasks view</b>.</p>
       
    63 
       
    64 <h2>Getting a makefile</h2>
       
    65 <p>You can either create a C/C++ project for which you supply the <b>makefile</b>
       
    66 or create a C/C++ project for which the CDT generates makefiles
       
    67 automatically.</p>
       
    68 <p>To create a new project, from the menu bar choose <b>File &gt; New
       
    69 &gt; Project</b>. In the dialog that appears, expand the C/C++ group
       
    70 and choose e.g. C Project</p>
       
    71 <ul>
       
    72   <li>In the resulting wizard page, to create a project for which you supply the <b>makefile</b>,
       
    73 select  <b>Makefile project</b> and choose one of the alternatives under that.
       
    74 An empty project, or a simple "Hello World"  can be created. 
       
    75 You edit and manage the makefile yourself.
       
    76 <p>&nbsp;</p>
       
    77 </li>
       
    78   <li>To create a project for which the CDT supplies a basic <b>makefile</b>,
       
    79 select another project type, e.g. <b>Executable</b> and choose one of the examples
       
    80 under that, or choose <b>Empty Project</b>. 
       
    81 </li>
       
    82 </ul>
       
    83 <h2>Setting build preferences</h2>
       
    84 <p>You can set build preferences in Eclipse:</p>
       
    85 <dl>
       
    86   <dt>Build order</dt>
       
    87   <dd>If certain projects must be built before others, you can set the <i>build
       
    88 order</i>. If your project refers to another project, the CDT must
       
    89 build the other project first. To set the build order, from the menu
       
    90 bar select <b>Window &gt; Preferences</b> and choose <b> General > Preferences > Build Order</b>.
       
    91     <p>When you set the build order, the CDT does not rebuild projects
       
    92 that depend on a project; you must rebuild all projects to ensure all
       
    93 changes are propagated.</p>
       
    94   </dd>
       
    95   <dt>Automatic save</dt>
       
    96   <dd>You can set the CDT to perform an <i>automatic save</i> of all
       
    97 modified resources when you perform a manual build. In the preferences dialog, 
       
    98 select <b>General > Workspace</b> and check <b>Save automatically before build</b>.
       
    99 By default,
       
   100 this feature is <i>not</i> enabled.</dd>
       
   101 </dl>
       
   102 
       
   103 <h2>Controlling the building of your project</h2>
       
   104 <p>For a Makefile project, the C/C++ compiler that a project uses
       
   105 is controlled by the project's <b>Properties</b> setting.
       
   106 To view a project's properties, right-click on the project and select <b>Properties</b>.
       
   107 In the dialog that appears, the <b>C/C++ Build</b>
       
   108 page enables you to control a variety of settings, including:</p>
       
   109 <dl>
       
   110 	<dt>Build Command</dt>
       
   111 	<dd>On the <b>Builder Settings</b> tab, this controls which <code>make</code> is used. To change it, uncheck <b>Use
       
   112 	default build command</b> and change it or add arguments to the make command.</dd>
       
   113 	
       
   114 	<dt>Build Setting</dt>
       
   115 	<dd>On the <b>Behaviour</b> tab, this controls whether the compiler will <b>Stop on first build error</b> or not
       
   116 	(keep going). Unchecking <b>Stop on first build error</b> will force the compiler to attempt to build all referenced
       
   117 	projects even if the current project has errors.</dd>
       
   118 
       
   119 	<dt>Workbench Build Behavior</dt>
       
   120 	<dd>On the <b>Behaviour </b> tab, this controls which makefile target will be built depending on the scope of the
       
   121 	build, e.g. <code>all</code> or <code>clean</code>.</dd>
       
   122 </dl>
       
   123 <p>For a standard (non-Makefile) project (often called "Managed Build" or "Managed Make" project from
       
   124 earlier CDT version), the project properties dialog enables
       
   125 you to manage the build configurations of your project. For additional
       
   126 information see:</p>
       
   127 <ul>
       
   128   <li><b>Reference &gt; C/C++  Properties &gt; C/C++ Project Properties &gt; Managed Make
       
   129 Projects</b></li>
       
   130   <li><b>Reference &gt; C/C++  Properties &gt; C/C++ Project Properties &gt; Managed Make File
       
   131 Properties</b></li>
       
   132 </ul>
       
   133 <h2>Viewing build information</h2>
       
   134 <p>Build-related information is displayed as follows: </p>
       
   135 <ul>
       
   136   <li>The <b>Console</b> view displays the output of the make utility.</li>
       
   137   <li>The <b>Tasks</b> view displays a list of compiler errors and
       
   138 warnings related to your projects. </li>
       
   139   <li>For a Standard Make project, build actions display in the <b>Make
       
   140 Targets</b> view.</li>
       
   141 </ul>
       
   142 <p><img border="0" src="../images/ngconcepts.gif" alt="Related concepts"
       
   143  width="143" height="21">
       
   144 <br>
       
   145 <a href="cdt_c_projects.htm">CDT Projects</a><br>
       
   146 <a href="cdt_c_proj_file_views.htm">Project file views</a></p>
       
   147 <p><img border="0" src="../images/ngtasks.gif" alt="Related tasks"
       
   148  width="143" height="21">
       
   149 <br>
       
   150 <a href="../tasks/cdt_o_build_task.htm">Building projects</a></p>
       
   151 <p><img border="0" src="../images/ngref.gif" alt="Related reference"
       
   152  width="143" height="21">
       
   153 <br>
       
   154 <a href="../reference/cdt_u_properties.htm">Project Properties</a></p>
       
   155 &nbsp;
       
   156 <p><img src="../images/rh03_04.gif" alt="Red Hat Copyright Statement"><br>
       
   157 <img src="../images/ng00_04a.gif" alt="IBM Copyright Statement">
       
   158 </p>
       
   159 </body>
       
   160 </html>