Symbian3/SDK/Source/GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 11 Jun 2010 12:39:03 +0100
changeset 8 ae94777fff8f
parent 7 51a74ef9ed63
child 13 48780e181b38
permissions -rw-r--r--
Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-301E5FAA-A1C3-4FD7-9D84-DAA61C66981B" xml:lang="en"><title>Symbian
C++ Quick Start</title><shortdesc>This Quick Start is relevant if you want to create Symbian C++
applications that run on Symbian devices - i.e. "on top" of the Symbian platform.
Typically this will include: professional application and games developers,
professional service companies, hobbyist developers and students. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The tutorial shows you how to get the development tools (e.g. IDE) and
set up your development environment. It then shows you how to create a skeleton
application using Carbide.c++ and UI designer, and how to get it up and running
on both the <xref href="http://developer.symbian.org/wiki/index.php/Symbian_Emulator" scope="external">Symbian Emulator</xref> and on the device; the whole process
takes just a few minutes! </p>
<p>Comes with Code: <xref href="http://developer.symbian.org/wiki/index.php/File:HelloSymbianWorld_Example_Code.zip" scope="external">File: HelloSymbianWorld Example Code.zip</xref> </p>
<section id="GUID-84D52EE3-58BD-4C55-B07C-52D08CEC42D8">       <title>  Set
up the development environment</title>       <p>Assuming your computer meets
the <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_developer_environment_system_requirements%3F" scope="external">System Requirements</xref> then setting up your PC for Symbian
C++ development is as simple as downloading and installing (do so in this
order): </p><ol>
<li id="GUID-1ADD0E23-A910-4FE5-9CC7-3ABE186CDFFC"><p>Perl. See the <xref href="http://developer.symbian.org/wiki/index.php/Kits_Q%26As#How_do_I_install_Perl_on_my_C.2B.2B_development_PC.3F" scope="external">Kits Q&amp;As</xref> for notes on the recommended version.</p></li>
<li id="GUID-91F4D7FD-3E98-498A-9BAE-962466EEF83B"><p><xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">Application Developer Toolkit (ADT)</xref>.</p></li>
<li id="GUID-8630F1D8-E45B-4AF9-8F4E-D8906C71FCD3"><p><xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=3&amp;cid=7&amp;iid=26" scope="external">Software Developer Kit (SDK)</xref>  (full installation)
.</p></li>
</ol><p>For help installing the SDK please refer to the <xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Installation_Guide" scope="external">Symbian^1 SDK Installation Guide</xref>.</p><p>You can now
create your first application using the Carbide.c++ project wizard, as the
following sections will describe. </p>     </section>
<section id="GUID-4B542973-8F52-41B5-884E-273BB222B783"><title>Starting Carbide.c++</title><p>The
Carbide.c++ IDE is installed as part of the free <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">Application Developer Toolkit (ADT)</xref> (step 2 in the
section above). It is the only supported/official IDE for Symbian C++ development.
 </p><p>Carbide.c++ is launched from the Windows <b>Start</b> button: <b>All
Programs | Symbian Foundation ADT v</b><i>&lt;ADTVersion&gt;</i> <b>| Carbide.c++
| Carbide.++ v</b><i>&lt;CarbideVersion&gt;</i>.</p><p> On start, you will be
prompted to select a workspace directory. The workspace directory contains
any projects you’ve already created in the workspace and their common settings
- such as code-formatting options (you can define multiple workspaces in order
to separate completely different tasks). If this is the first time you've
run Carbide.c++ the workspace will be empty.</p><note> Your Symbian projects
must be on the drive where you installed your SDK. You must also ensure that
the path name of the workspace does not contain non-alphanumeric characters
or spaces. This is because the Symbian toolchain uses command line tools that
cannot read special path names.</note><p>If you installed the SDK to drive <codeph>C:\</codeph>,
an example of a correct workspace path is: <codeph>C:\Symbian\development\</codeph>. </p><fig id="GUID-8E6698A1-7410-40FA-A109-E92481EE5E9D">
<image href="GUID-37042E73-123B-437B-8EC4-8FC6C3AD6D47_d0e4458_href.png" placement="inline"/>
</fig><p>Once Carbide.c++ has started, close the <i>Welcome tab</i> (by clicking
the cross shown circled in red below) to see the default workspace.</p><fig id="GUID-F379FA98-BCA3-47BB-851E-8E976A0B194F">
<image href="GUID-329833DA-CB6E-4715-A8E6-AD838DD5A909_d0e4467_href.png" placement="inline"/>
</fig></section>
<section id="GUID-D06F438D-D17F-4EFD-9CD7-9444472B5676"><title>  Creating
a Project</title><p>To launch the Carbide.c++ <i>Create New Project Wizard</i> select: <b>File
| New | Symbian OS C++ Project</b>. </p><p>Choose the <b>GUI Application with
UI Designer</b> application template (see S60 section). This template creates
a runnable GUI application with the <i>UI Designer</i> tool enabled (the <i>UI
Designer</i> allows views to be created "visually" by drag &amp; dropping
standard UI components). </p><fig id="GUID-2859E9EC-2EAC-4E99-9993-8AC91944A952">
<image href="GUID-5E7FB4BD-DF3B-4F97-8394-5E1A6FF8D11B_d0e4494_href.png" placement="inline"/>
</fig><p>The <b>Next</b> page of the wizard is "<b>New Symbian OS C++ Project</b>".
Define the project name - in this case "HelloWorld". Once again, make sure
the project directory is on the same drive as the SDK and does not contain
spaces or other special characters.  </p><fig id="GUID-969415CB-A861-4E36-A4A5-504C3580A3ED">
<image href="GUID-57CC6419-2800-4E54-8DF6-36EC2617D2FD_d0e4506_href.png" placement="inline"/>
</fig><p>The <b>Next</b> page of the wizard is "<b>Symbian OS SDKs</b>". Choose
the SDK(s) you want to use for building the project from among those installed
to your PC (You can add more SDKs to your project later on). This should include
a <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F#Application_Development_SDK" scope="external">Symbian platform SDK</xref>. At time of writing the only
C++ Application Development SDK is the Symbian^1 SDK (<b>Note</b>: this is
a copy of the S60 5th Edition SDK v1.0).  </p><fig id="GUID-0275D0D6-5E8E-4795-A887-F0F21EE509D9">
<image href="GUID-E544A944-5A65-40BD-A3B4-EF14E6132130_d0e4524_href.png" placement="inline"/>
</fig><p>By default all build configurations will be selected:      </p><ul>
<li><p><b>Emulator Debug (WINSCW)</b> builds binaries for the Windows-hosted
emulator.</p></li>
<li><p><b>Phone Debug | Release (GCCE)</b> builds binaries for the phone using
the (free) GCCE compiler that was installed with the <xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F#Application_Development_SDK" scope="external">SDK</xref>.  </p></li>
<li><p><b>Phone Debug | Release (ARMV5)</b> builds binaries for the phone
using the <xref href="http://developer.symbian.org/wiki/index.php/ARM_Real_View_Compilation_Tools_(RVCT)_Quick_Start" scope="external">ARM RealView Compiler (RVCT)</xref>. RVCT produces code that
is a few percent smaller and faster than the current versions of GCCE supported
for Symbian C++ development, but must be separately licensed from ARM. RVCT
is primarily used by phone manufacturers to build binaries for device ROM.</p></li>
</ul><p>Most developers should simply de-select the ARMV5 options above as
shown (the Emulator is needed by all developers, and GCCE is sufficient for
most third-party development).  </p><p>The <b>Next</b> page of the wizard
sets the "<b>Application properties</b>".  </p><fig id="GUID-3BD8C48E-AFA5-4D34-9E66-9B374E514635">
<image href="GUID-6CEE397C-78E3-40AE-8D39-3DC0980A932A_d0e4566_href.png" placement="inline"/>
</fig><p>Keep the default values. The <b>Baseline SDK</b> defines the common
compatibility level of your application. For example, if set to the <b>S60
5th Edition SDK</b>, the UI designer doesn’t let you add elements that are
only available in later S60 5th Edition, Feature Pack 1+ SDKs and devices.
 </p><p>The <b>Next</b> page of the wizard allows you to choose an S60 UI
design. Keep the <b>Empty</b> user interface variant.  </p><p>The <b>Next</b> page
of the wizard "<b>Container Name and Type</b>" has default values that are
usually acceptable.  </p><note/><p>The <b>Finish</b> button is active
in this page. The next page is optional but for the purposes of this tutorial
you should click <b>Next</b>, rather than <b>Finish</b>.  </p><fig id="GUID-0F3EA856-F629-47BF-88ED-76F355EED12F">
<image href="GUID-A331AA9C-ECEC-4497-B45A-7C08845DE0A4_d0e4606_href.png" placement="inline"/>
</fig><p>Even though our application will only use one view, it’s usually
better to check "Support View Switching", in order to make the application
easier to extend later on.  </p><p>The <b>Next</b> page of the wizard "<b>Basic
Settings</b>" can be used to customize the project with your name and a copyright
notice for every human-readable file. It also allows you to specify the application
unique identifier (<xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)" scope="external">UID</xref>).  </p><fig id="GUID-7D8B9AD4-F90C-4001-8449-DC282774B4E9">
<image href="GUID-B2B34DFF-6EBE-424A-9480-C9F1CB6E2D56_d0e4623_href.png" placement="inline"/>
</fig><p>The UID (actually the <xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)#What_are_SIDs.3F" scope="external">SID</xref>, but for the moment we can ignore the distinction)
defines the private area in the file system in which the application can store
its data. Among other things the UID can also be used to programmatically
identify and/or <xref href="http://developer.symbian.org/wiki/index.php/How_to_programmatically_start_another_application" scope="external">start the application</xref>.  </p><p>Carbide.c++ generates
a random UID value for you starting with ‘0xE’, which is the range of UIDs
reserved for internal development and testing. If you want to release your
application to the public, you need to get your own unique UID allocated by <xref href="http://www.symbiansigned.com/" scope="external">Symbian Signed</xref>.
 </p><p>As we do not intend to release our Hello World application to the
public, we’ll simply continue to use the value Carbide.c++ assigned us from
the development range (you can change the UID later on, although you must
be careful to change every instance of it found within your project - see <xref href="http://developer.symbian.org/wiki/index.php/UID_Q%26As_(Symbian_Signed)#How_do_I_change_the_UID_of_my_application.3F" scope="external">How to change your application's UID</xref>).  </p><p>Select <b>Finish</b> to
close the wizard and create your application (there is no need to go to the <b>Next</b> (last)
page of the wizard as the default values are always acceptable).  </p><p>That's
it, your workspace should look similar to the screenshot below. </p><fig id="GUID-4E47F468-590F-4608-9608-D026956B6B23">
<image href="GUID-967F99EC-0C6E-468F-BB2D-C175C7F69B67_d0e4655_href.png" placement="inline"/>
</fig></section>
<section id="GUID-E1F2D586-2546-4EB6-BDD3-518D03698D9B"><title>  Targeting
the Emulator</title><p>Normally you'll start by building for the emulator;
you can use the emulator for most of your development work (it is possible
to access the Internet through the emulator, and even simulate GPS). </p><p/><p><b>Building
for the Emulator</b></p><ul>
<li><p>First set the active build configuration. You can do this by clicking
the <b>Manage configurations for the current project</b> icon <image href="GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4675_href.png" placement="inline">
</image> in the toolbar or by selecting menu: <b>Project | Build Configurations
| Set Active</b> and select <b>Emulator Debug</b>. </p></li>
</ul><fig id="GUID-ABBC9711-3A90-4EC3-9C7F-56D165816A4A">
<image href="GUID-379D9401-04A2-4A32-A3BF-C6F127E8F074_d0e4687_href.png" placement="inline"/>
</fig><ul>
<li><p>Then build the current configuration using the <b>Build</b> icon <image href="GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4697_href.png" placement="inline"/> in the toolbar or
through the menu: <b>Project | Build Project</b> (You can also select a particular
configuration to build from the Build icon selector).</p></li>
</ul><p><i>Warning: If you get an error message similar to "WARNING: EPOCROOT
does not specify an existing directory", you did not place your workspace/project
on the same drive as the application development SDK (which is installed by
default to C:\). Delete the project and start again. The diagram shows how
this might appear in Carbide.c++:</i> </p><fig id="GUID-724EE45B-5DEF-40D5-8AA0-1D84C6DBD7A7">
<image href="GUID-1319CEA4-56D7-45DF-9C22-45291017992E_d0e4709_href.png" placement="inline"/>
</fig><p/><p><b>Running on the Emulator</b></p><p>If your application built
successfully, click on the <b>Run</b> button <image href="GUID-B574CC84-342C-4613-A628-B32B7876D595_d0e4720_href.png" placement="inline">
</image> (Ctrl + F11). Upon the first launch of your project, Carbide.c++
will ask you which executable you want to launch: </p><fig id="GUID-66C413F8-7482-47FC-A37F-1BFC83A7550E">
<image href="GUID-DCFF3240-F1CD-41FF-B832-990ADF101674_d0e4725_href.png" placement="inline"/>
</fig><ul>
<li><p>If you choose <i>HelloWorld.exe</i>, the emulator will be launched
and your application started automatically. The emulator will close once you
exit your application. </p></li>
<li><p>If you choose <i>Emulator</i> the emulator (epoc.exe) will be launched
and you will need to navigate to the application and start it by clicking
on the icon (just as you do when starting an application on a device). We’ll
explain how to find the application shortly.</p></li>
</ul><p>It may sound more difficult to choose the second method, but it has
some advantages. You can leave the emulator running if you are only doing
small edits in your source code – simply close your application in the emulator,
recompile and restart your app through the emulator’s menu. You’ll also see
any error messages that may be shown when you exit the application, because
the emulator will not shut down instantly after you exit Hello World in the
emulator. Those error messages are also visible in Carbide.c++’s console window.
 </p><p>When the emulator starts for the first time you might have to wait
for several minutes before it is completely ready for use. Successive starts
will be a lot faster, because Windows caches most of the emulator DLLs. </p><fig id="GUID-A0A0A882-BC03-401B-A701-8EBEBC6D7BCE">
<image href="GUID-3FFF726B-D158-4EDF-B950-4B58467F210B_d0e4749_href.png" placement="inline"/>
</fig><p><i>If you decide to launch the emulator and navigate to your application:</i> First,
open the menu through the <b>S60</b> menu symbol on the bottom left of the
screen. Your own application will be located at the bottom of the <b>Applications</b> folder;
use your mouse to navigate in the emulator’s menus.  </p><p>When you launch
your application, the main pane will be empty. As you can see, the example
application the wizard has created already supports a full user interface
and handles input from the left and right softkeys at the bottom of the screen. </p><fig id="GUID-B81BC36D-7EA2-4B2A-9610-4A7F12684802">
<image href="GUID-E5962E2D-C2D1-40EC-96FB-79CA6D10417F_d0e4765_href.png" placement="inline"/>
</fig><p/><p><b>Debugging on the Emulator</b></p><p>The Emulator is the
default debug target - you simply click the Debug button <image href="GUID-4C6B9697-B69C-49D5-AD23-D7C0053BED3A_d0e4773_href.png" placement="inline">
</image>.  </p><p>Debugging on the Emulator is not covered further in this
tutorial. See <b>Carbide.c++ User Guide &gt; Debugging projects</b> for extensive
information on debugging using Carbide.c++. </p></section>
<section id="GUID-8ADA0364-18BF-4392-A448-3C5513B3C49B"><title>Targeting the
Device</title><p>The emulator can be used for most of your development work.
However, some situations still require a real device – for example, when you
want to use the camera or the acceleration sensor.</p><p><i><b>Tip</b>: You
should test your applications on the phone from time to time, even if it is
fully supported by the emulator.</i></p><p>When you've finished development,
you'll also want to build a release version; stripping out debug code and
symbol information to make your binaries smaller and more efficient. </p><p/><p><b>Building
for the Device</b></p><p>To tell the IDE that you want to build for the device,
change the active build configuration to a phone-release configuration for
GCCE (unless you have the <xref href="http://developer.symbian.org/wiki/index.php/ARM_Real_View_Compilation_Tools_(RVCT)_Quick_Start" scope="external">RVCT compiler</xref>). As before, use the <b>Manage configurations
for current project</b> toolbar icon (<image href="GUID-9F4C948B-7A6B-4E90-BBB7-A6CC6F4A6769_d0e4806_href.png" placement="inline">
</image>) to select the active-build configuration.  </p><fig id="GUID-0B5929C0-6DAC-4859-8B2A-BC3225507685">
<image href="GUID-BD1DBD2B-A4C1-4769-B454-2A9B4D056446_d0e4811_href.png" placement="inline"/>
</fig><p>Next, choose to build the current configuration using the toolbar <b>Build</b> icon <image href="GUID-CBE1CE3A-5C8B-475D-9F5E-8ACD839EB7E6_d0e4818_href.png" placement="inline"/>(or in the menu: <b>Project
| Build Project</b>).  </p><p>This will automatically compile the project
using the GCCE compiler and create an installation package – a file called <codeph>HelloWorld.sisx</codeph> in
your project's <codeph>\HelloWorld\sis\</codeph> directory. You now need to
transfer this file to your phone to install it. 	</p><p><i><b>Tip</b>: Use
Carbide.c++ to find the file on your PC. Navigate to the file in the project
view, then right-click on it and select <b>Show in Explorer</b>.</i>  </p><p>Don’t
forget to switch back to the <b>Emulator Debug</b> build configuration when
you continue development! </p><p/><p><b>Installing on the Device</b></p><p> 
You can use the PC Suite that came with your phone to install the application
on your device</p><ul>
<li><p>Ensure that the PC Suite is installed and running</p></li>
<li><p>Connect your device to the PC via Bluetooth or USB and add the phone
to the known devices in the PC Suite (if necessary).</p></li>
<li><p>Double-click the <codeph>.sisx</codeph> file in Windows Explorer or
the Project Explorer window of Carbide.c++.</p></li>
</ul><p>If the PC Suite is not installed on your PC, you can send the file
to the phone via Bluetooth or IrDA (if available):      </p><ul>
<li><p>Locate the <codeph>.sisx</codeph> file in Windows Explorer</p></li>
<li><p>Right-click on it and select <b>Send to | Bluetooth device</b>.</p></li>
</ul><p>You will be prompted to install the application when you open the
message. 	</p><p/><p><i><b>Warning</b>: If you get a </i><keyword>Certificate
Error</keyword> <i>message when you try to install the application, then your
phone has been configured to prevent installation of self-signed sis files.
To change this behavior, go to <b>Settings - Application manager - Installation
settings - Software installation</b> and change the setting from <b>Signed
Only</b> to <b>All</b>. For other errors received upon installation, consult
the <xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device.dita">installation
error troubleshooting guide</xref>.</i></p><p/><p><b>Debugging on the Device</b></p><p> 
Debugging on a production phone is covered in the topic: <xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device" scope="external">Getting Started with Debugging on the Device</xref>. </p></section>
<section id="GUID-832FBA52-70D7-47B8-AA09-76CD10F75B15"><title>Building on
the Command Line</title><p>It is also possible to build your applications
using the command-line based Symbian toolchain. If you've never done so before
you will first need to set up the environment using the tool provided:  </p><ul>
<li><p>Select the windows start button and select: <b>Start | All Programs
| Symbian Foundation ADT v1.0 | Carbide.c++ | Configure environment for WINSCW
command line</b></p></li>
</ul><p>   Open a command prompt in your project's /group/ folder (where the
bld.inf project file is located) and do:  </p><codeblock xml:space="preserve">bldmake bldfiles 
abld build</codeblock><p>  The command <codeph>bldmake bldfiles</codeph> creates
a batch file <codeph>abld.bat</codeph> based on the component-definition file
(<codeph>bld.inf</codeph>) and the project-definition file(s) (<codeph>.mmp</codeph>).
The <codeph>abld build</codeph> command uses the batch file to build <i>all</i> the
default targets (i.e. for gcce and Emulator).  </p><p>You can build just one
target using  </p><p><codeblock xml:space="preserve">abld build &lt;target&gt;</codeblock></p><p>For
example, "<codeph>abld build winscw udeb</codeph>" builds just the emulator
debug variant.  </p><p>You can start the emulator by selecting its executable
in your file system (it will be located at <codeph>SDK DIRECTORY\epoc32\release\winscw\udeb\epoc.exe</codeph>).
 </p><p>An overview of the commands and the generated outputs is shown below.
There is also extensive documentation on the build process in the <xref href="http://developer.symbian.org/main/documentation/reference/s%5E3/doc_source/ToolsAndUtilities96/BuildTools/HowtoBuildProcess.guide.html" scope="external">Symbian Developer Library: Symbian OS build process</xref>.</p><fig id="GUID-C3027C70-8C7A-4C0A-BE2F-C257EA462D73">
<image href="GUID-358412B8-8B98-419F-99E6-28A01ED99B79_d0e4980_href.png" placement="inline"/>
</fig></section>
<section id="GUID-1E8CC146-B76A-476D-BF65-DFBB6B31D183"><title>Troubleshooting</title><p> 
For the vast majority of users the preceding instructions can be followed
through without issue. If however you have any build issues, then please follow
the following instructions to check that your <xref href="http://developer.symbian.org/wiki/index.php/How_do_I_test_that_my_development_environment_is_set_up_correctly%3F.dita">environment is set up correctly</xref> and <xref href="http://developer.symbian.org/wiki/index.php/Development_Environment_Troubleshooting_Guide" scope="external">troubleshoot</xref> any problems that may arise.</p></section>
<section id="GUID-A303EA17-F198-42A2-B41C-5C43B4D88B9E"><title>Summary</title><p>In
this tutorial you set up your development environment, learned how to create
a skeleton application using Carbide.c++ <i>UI Designer</i>, and how to get
it up and running on both the Symbian platform emulator and on the device.
 </p><p>In <xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going Beyond
Hello: A Tutorial for Symbian C++ Applications</xref> we will extend the basic
skeleton to create a small paint application, along the way learning more
about the application frameworks (e.g. defining menus, how to handle touch-screen
events, drawing to the screen etc.).</p></section>
<section id="GUID-478AF935-A7FB-4F58-A1F4-E17FE57DDF72"><title>Related Info</title><p> 
Further reading: </p><ul>
<li><p><xref href="GUID-0C814ED6-3F64-4E0E-9C47-654AEDADBA90.dita">Going Beyond
Hello: A Tutorial for Symbian C++ Applications</xref> provides a step by step
guide to creating your first "real application", covering the key elements
of the application framework. </p></li>
<li><p><xref href="http://developer.symbian.org/wiki/index.php/Fundamentals_of_Symbian_C%2B%2B" scope="external">Fundamentals of Symbian C++</xref> provides all the essential
information you need to understand Symbian C++.</p></li>
</ul><p>About the Kits:</p><ul>
<li><p><xref href="http://developer.symbian.org/wiki/index.php/What_are_the_Kits%3F.dita">What
are the Kits?</xref> explains the <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=2&amp;cid=6&amp;iid=22" scope="external">ADT</xref> and <xref href="http://developer.symbian.org/main/tools_and_kits/downloads/download.php?id=3&amp;cid=7&amp;iid=26" scope="external">SDK</xref>.</p></li>
<li><p><xref href="http://developer.symbian.org/wiki/index.php/Kits_Q%26As" scope="external">Kits Q&amp;As</xref>.</p></li>
<li><p><xref href="http://developer.symbian.org/wiki/index.php/Getting_Started_with_Debugging_on_the_Device" scope="external">Getting Started with Debugging on the Device</xref>.</p></li>
<li><p><xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Release_Notes" scope="external">Symbian^1 SDK Release Notes</xref>.</p></li>
<li><p><xref href="http://developer.symbian.org/wiki/index.php/Symbian%5E1_SDK_Installation_Guide" scope="external">Symbian^1 SDK Installation Guide</xref>.</p></li>
</ul></section>
</conbody></concept>