Carbide.c++

From Wikipedia, the free encyclopedia

Image:CarbideCppIcon.gif CarbideDevToolsLogo.gif

Carbide.c++ is a software development tool for C++ development on Symbian OS. It is used to develop phones that use the OS, as well as applications that run on those phones. It is based on the Eclipse IDE platform enhanced with extra plug-ins to support Symbian OS development. The product is developed by Nokia as part of its Carbide development tools family; it replaces CodeWarrior for Symbian OS as the primary development environment for Symbian OS.

Contents

[edit] Versions

Carbide.c++ is offered in four flavors:

  • Express -- Basic tools for non-commercial development only. Contains project management, code authoring, emulator & GCC-E builds, and emulator debugging. The Express edition is currently offered for free.
  • Developer -- Targeted at aftermarket software development. Contains Express features, a UI Designer (for rapid UI creation), and application-level on-device debugging for S60 and UIQ phones.
  • Professional -- Targeted at Symbian OS phone manufacturers, their partners, and application/middleware vendors working on demanding projects. Contains Developer features, system-level on-device debugging, and performance profiling tools.
  • OEM -- Targeted at early-access embedded development such as driver-development, base porting, and hardware-dependent application and middleware development. Contains Professional features, and stop-mode debugging using Lauterbach and Sophia in-circuit emulators.

[edit] Technology

Carbide.c++ v1.1 is based on Eclipse IDE 3.1 and Eclipse CDT 3.0.2 extended with Symbian OS -specific features. Currently it uses the same C++ compilers as CodeWarrior for production of emulator binaries. For target binaries it uses GCC, and supports ARM RVCT compilers (sold separately).

Carbide.C++ has branched very few parts of CDT - nearly all of it is contained within added plug-ins added on top of Eclipse. The few branches mostly relate to the different semantics of the CodeWarrior debugger engine, compared to GDB which is what Eclipse previously supported. Because Carbide.C++ is very similar to a standard Eclipse installation, it can still be used for other types of development such as Java or Perl (provided the correct plug-ins are installed using Eclipse's self-update mechanism). Similarly, it ought to be possible to produce a product with similar functionality to Carbide.C++ by moving the Carbide.C++ plug-ins into a standard Eclipse installation; this is not currently a facility offered by Nokia.

Carbide.C++ uses Eclipse's Managed Build System to build Symbian OS executables: Carbide.C++ generates appropriate makefiles rather than using the standard Symbian OS build tools. This has strong advantages in that it offers fast automatic rebuilds based on just the files which have changed. However it has a number of disadvantages: firstly, because the standard Symbian OS build system is entirely replaced, any changes or enhancements to those tools will not be reflected within Carbide.C++. Similarly it is required to have much more hard-coded knowledge about different Symbian OS versions and user interface SDKs, which may become outdated (although such knowledge is contained within plug-ins, which can easily be replaced or added to). A further disadvantage is the inevitable risk of bugs within this new makefile system relative to the long-established Symbian build tools.

[edit] Reception

Being a new series of products, Carbide.C++ has not yet displaced CodeWarrior within the Symbian OS development community. There are several frequently cited complaints - for example, lack of Symbian-OS-style code indenting, lack of an easy "find in files" facility, speed of import of Symbian OS build files (MMPs), and difficulties using on-device debugging. In addition, the much-anticipated Managed Build System doesn't work properly yet - rather than offering a true incremental build, it frequently deletes everything and starts again. Otherwise, however, the reception has been warm - the development environment is preferred to CodeWarrior, and those cynical about Java performance have been impressed with the general speed of the Java-based IDE.

[edit] Using Carbide.C++

To do Symbian OS C++ development you will need to not only obtain Carbide.C++, but also a Symbian OS SDK. This SDK contains the emulator and also the libraries and header files required for Symbian OS development. Once installed, Carbide.C++ offers the opportunity to download such SDKs but you can also download them independently - from, for instance, Nokia or UIQ.

[edit] External links