Open C/C++ QuickStart

Open C/C++ - leverage your desktop C or C++ skills to S60 devices
The Open C/C++ Plug-ins for S60 3rd Edition provide you with a comprehensive range of standard C and C++ APIs as well as a set of non-Symbian C++ graphics and audio APIs. Even if you have limited or no experience with Symbian C++ development, you will find that Open C/C++ allows you to easily create middleware and application engines for S60 3rd Edition devices.
The Open C/C++ libraries provide a Linux-like, vendor-neutral C/C++-programming interface to the core functions of S60 devices. The standard libraries are supplemented by the Real-Time Graphic and Audio (RGA) API, which enables you to create custom UIs for selected devices without having to use the S60 UI APIs or Python.
Benefits of using Open C/C++
Open C/C++ provides familiar, standard C and C++ libraries and enables the reuse of existing code and development to focus on maximizing the unique mobility aspects of applications. It reduces the effort required to port existing components (for example, open source software and desktop applications) to the S60 platform. Developers can benefit from a large, open-source code base instead of having to create everything from scratch. This offers both time-to-market and quality advantages.
What you should already know
To make use of the Open C/C++ plug-ins, you should have an understanding of development using standard C/C++ libraries. No specific understanding of Symbian C++ development is required unless you wish to build a standard S60 user interface for your application. An understanding of the Symbian OS build tools is necessary to package any applications for deployment to an S60 3rd Edition device.
Start here
Before you begin writing code, get an overview by reading the document Open C for S60: Increasing Developer Productivity. This white paper describes how Open C, including POSIX libraries, increases the efficiency of developers working on products based on Symbian OS, allowing them to draw on existing code and components as part of their development projects.
And if you haven't already, read the Open C/C++ technology landing page.
Play with the tools
The Open C/C++ Plug-ins for S60 3rd Edition package includes a plug-in for S60 3rd Edition SDKs, for Symbian OS, for C++, and a set of plug-ins for S60 3rd Edition devices. The plug-ins deliver the Open C, Open C++, and RGA headers and libraries that enable application development and testing on a PC and the execution of software on S60 3rd Edition devices. The plug-ins package also includes example applications and comprehensive documentation of the APIs.
The Open C/C++ plug-ins for S60 3rd Edition replace the Open C plug-ins and include:
- Various fixes for the standard C (Open C) APIs.
- New standard C++ APIs.
- New Real-Time Graphics and Audio (RGA) API.
Note that Open C is integrated into S60 3rd Edition, Feature Pack 2. However, you may want to update the SDK and devices with the new plug-ins and runtime.
Get the development tools
- First download and install an S60 SDK (the latest one is the S60 3rd Edition SDK for Symbian OS, Feature Pack 2).
- Then download and install the Open C/C++ plug-ins.
You will need the hardware and software necessary for the installation of your chosen S60 3rd Edition SDK, for Symbian OS, for C++ as well as an additional 109 MB of disk space for the plug-in.
Once you have installed the SDK plug-in, you can access the Open C/C++ S60 3rd Edition device plug-ins, documentation, and example applications.
Development with Open C/C++ can be undertaken with any IDE suitable for S60 development. However, Carbide.c++ v1.3 is recommended.
- Download and install the latest Carbide.c++ IDE.
Create an Open C/C++ project
At this point you do not need to program anything—you simply need to become familiar with the development process and tools by building and running an existing Open C example application.
Watch the Getting Started with Open C video, which provides an introduction to the tools and processes for using Open C. First the video shows how to download and install the plug-in (note that the latest Open C/C++ plug-in provides an installer so there is no need to manually extract the contents to the SDK root directory). Then it illustrates how to use Carbide.c++, and the process of importing, building, and running an application that uses Open C. Finally the video demonstrates how to create a device build of the application and how to install Open C runtime libraries and the application on the device.
Open C/C++ applications are supported on any S60 3rd Edition device or later. However, the device needs to have the runtimes installed.
Begin studying Open C/C++ programming
What is Open C?
Open C is a set of standard base libraries that provide a vendor-neutral (or Linux/Unix-like) C programming interface to the base functionality. The Open C libraries are based on POSIX libraries on Symbian OS™ (P.I.P.S.), with five additional open-source C libraries. The C libraries include libc, libcrypt, libcrypto, libdl, libglib, libm, libthread, libssl, and libz.
What is Open C++?
Open C++ is a set of standard base libraries that provide a vendor-neutral (or Linux/Unix-like) C++ programming interface to the base functionality. The libraries include IOStreams, STL, and Boost.
For more information, visit the Open C/C++ features page.
How to port existing code to the S60 platform
- Watch 04401: Porting to S60 Using Open C, an eLearning module that provides students with the basic knowledge and skills they need to port C code to S60 using Open C. The module is intended for developers who have little or no knowledge of Symbian OS, but have some experience in using POSIX/GLIB APIs on other platforms. In addition to the main presentation, this eLearning module also provides a practical demonstration of porting C code to an S60 3rd Edition DLL. The demonstration starts with some existing C code, which uses the GLIB libraries, and shows how to port it step by step to S60.
- Also read the article Tips for Selecting Open Source Code for an Open C Project for information on how to produce better quality code.
How to develop a graphical user interface
Note that there are no UI libraries for Open C/C++. However, you can currently create the UI in three alternative programming languages; you can use the S60 UI framework and develop it in the Symbian C++ programming language. If you are not familiar with Symbian C++ programming, you have two choices: RGA APIs that are C++ APIs ideal for UI-intensive, graphics-oriented applications such as games or Python for S60, a scripting language mainly targeted at prototyping, is suitable for applications with minimal UI requirements.
- The development of hybrid applications is described in the S60 Open C API documentation.
- You should also take a look at the Open C code examples published at Forum Nokia (download them from the Open C documents and code examples page). Each example provides porting notes as well.
Shortcuts to development resources
Scan through the documentation
Open C/C++ documents, code examples, videos, and webinars
Open C/C++ articles in Forum Nokia Wiki
Open C/C++ technical solutions and known issues in Forum Nokia Knowledge Base
Discuss with your peers
Want to make money with it?
Applications or middleware created with the Open C/C++ APIs are essentially the same as applications written using the native Symbian OS and S60 APIs.
Before taking any software built using Open C/C++ to market, you should consider securing Symbian Signed certification for your application. Symbian Signed certification assures sales channels and mobile consumers that an application has achieved a high level of quality and comes from a reliable source. As such, Symbian Signed opens up sales channels and makes applications more appealing to mobile consumers.
Read more about the Symbian Signed program
Forum Nokia Open C/C++ plug-ins go-to-market links:





