<!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>Specifying the location of source files</title>
<link rel="stylesheet" type="text/css" href="../help.css">
</head>

<body>

<h1>Specifying the location of source files</h1>

<p>You can specify the location of source files used when debugging a C or C++ 
application. By default, this information is taken from the build path of your 
project.</p>

<p>To specify the location of source files:</p>

<ol>
  <li>In  the C/C++ Projects view, select a project.</li>
  <li>Click <b>Run &gt; Run</b> or <b>Run &gt; Debug</b>.</li>
  <li>In the <b>Configurations</b> box, expand <b>C/C++ Local</b>.</li>
  <li>Select a run or debug configuration.</li>
  <li>Click the <b>Source</b> tab.<p>The Generic Source Locations list shows 
  the location of the project selected in the C/C++ Projects view and any 
  referenced projects.</p></li></ol>
<p> To add an existing source locations:</p>  
<ol><li>To add an existing project to the <b>Additional Source Locations</b> 
    list, click <b>Add</b> to be prompted to select a process from a list at 
    run-time.</li>
    <li>In the <b>Add Source Location</b> dialog box, select a location type.</li>
    <li>Click <b>Next</b>.</li>
    <li>Do one of the following:</li>
    <ul><li>Select an existing project in your workspace. Click <b>Finish</b>.</li>
    <li>Specify a location in your file system. Click <b>Finish</b>.</li></ul>
    <li>Click <b>Run</b> or do the following, as required:<ul><li>To specify the 
    execution arguments that an application uses and the working directory for a run 
    configuration, see <a href="cdt_t_run_arg.htm">Specifying execution arguments</a>.</li><li>To set the environment variables 
    and values to use when an application runs, see <a href="cdt_t_run_env.htm">
    Setting environment variables</a>.</li>
  <li>To select a debugger to use when debugging an application, see
  <a href="cdt_t_run_dbg.htm">Selecting a debugger</a>.</li>
  <li>To specify where the run configuration is stored, how you access it, and 
  the perspective to open when running an application, see
  <a href="cdt_t_run_com.htm">Specifying the location of the run configuration</a>.</li></ul>
    
  </ol>

<p><img border="0" src="../images/ngconcepts.gif" ALT="Related concepts" width="143" height="21">
<br>
<a href="../concepts/cdt_c_projects.htm">CDT Projects</a><br>
<a href="../concepts/cdt_c_proj_file_views.htm">Project file views</a></p>
<p><img border="0" src="../images/ngtasks.gif" ALT="Related tasks" width="143" height="21">
<br>
<a href="cdt_o_run_config.htm">Creating or editing a run configuration</a></p>
<p><img border="0" src="../images/ngref.gif" ALT="Related reference" width="143" height="21">
<br>
<a href="../reference/cdt_o_run_dbg_pages.htm">Run and Debug dialog box</a></p>
<img src="../images/ng03_04.gif" ALT="IBM Copyright Statement" BORDER=0 width="324" height="14">

</body>

</html>