Open C FAQ
[B]Q: What is Open C?[/B]
Open C is a major extension to the C++ development environment. It is a set of standard POSIX and middleware C libraries for the S60 platform that increases developer productivity by enabling the reuse of existing software assets. Open C will be part of the 3rd Edition FP2 release in 2007, and will be available as a plug-in that developers can use to create applications for earlier S60 3rd Edition devices.
[B]Q. What is POSIX?[/B]
POSIX or "Portable Operating System Interface for uniX" is the collective name of a family of related standards to define the application programming interface (API) for software compatible with variants of the Unix operating system. The original POSIX standard was released in 1988. Although used mainly for Unix systems, the POSIX standard can (and does) apply to any operating system. Operating systems can be fully or partly POSIX compatible; they can conform to POSIX standards entirely or partially.
[source: Wikipedia [url]http://en.wikipedia.org/wiki/Posix][/url]
[B]Q. Which libraries will Open C support?[/B]
S60 will support a subset of nine C libraries:
libc: basic programming routines
libm: mathematical functions
libpthread: threads and concurrency management
libdl: dynamic linking interfaces
libz: compression library
libcrypto: data security services
libcrypt: data encryption and password management
libssl: secure sockets layer (SSL) and Transport Layer Security (TLS)
libglib: utility library
[B]Q. How does Platform Security impact these APIs?[/B]
The Open C API’s do not bypass Symbian platform security. The Open C API’s are bound by the same access controls and capabilities as any other S60 native application.
It’s naturally important that developers coming from the desktop environment need to understand the different expectations of developing applications for a secure mobile OS.
[B]Q. Will applications still need to be Symbian Signed?[/B]
Yes. Applications will still be installed via the SIS mechanism, rely on and still need to be Symbian Signed if they use sensitive capabilities. Developers can use self-signing to create prorotype applications with limited capabilities. Freeware signing process is free of charge.
[B]Q. What effect does Open C have on performance?[/B]
The Open C libraries are middleware components that are tightly integrated with the underlying Symbian OS kernel. The performance of Open C components should be similar to that of other Symbian and S60 middleware components. Symbian is committed to maintaining consistent performance of all parts of OS.
Re: Open C FAQ
[B]Q: Which phones have built-in Open C support? Which SDKs?[/B]
A: All S60 3rd Edition FP2 (S60 3.2) or later support Open C and have the libraries built in. The libraries and needed headers files are also included in the corresponding SDKs.
[B]Q: Which phones have built-in Open C++ support? Which SDKs?[/B]
A: All S60 5th Edition (S60 5.0) or later support Open C++ and have the library built in. The library and needed headers files are also included in the corresponding SDKs.
Q: Can I deploy Open C/C++ applications on earlier devices, which do not have built-in support?[/B]
A: Yes, you can deploy Open C/C++ applications on all S60 devices, starting with S60 3rd Edition (S60 3.0). To enable support you have to install the [URL="http://www.forum.nokia.com/info/sw.nokia.com/id/91d89929-fb8c-4d66-bea0-227e42df9053/Open_C_SDK_Plug-In.html"]Open C/C++ Plug-in[/URL] on top of the SDK you use and you must also deploy the Open C/C++ libraries to the device with your application. You can achieve this by embedding the SIS files provided with the Open C/C++ Plug-in in your application's SIS file.
[B]Q: My target device has Open C support built-in but not Open C++. Can I deploy an Open C++ application to it?[/B]
A: Yes, you can build Open C++ applications by installing the [URL="http://www.forum.nokia.com/info/sw.nokia.com/id/91d89929-fb8c-4d66-bea0-227e42df9053/Open_C_SDK_Plug-In.html"]Open C/C++ Plug-in[/URL] on top of the SDK you use for that device. You then have to ensure that the Open C/C++ libraries are deployed embedded in your application's SIS file.
[B]Q: I only need to add support for Open C++ to my targeted device. Why must I embed the Open C libraries with my application as well?[/B]
A: The [URL="http://www.forum.nokia.com/info/sw.nokia.com/id/91d89929-fb8c-4d66-bea0-227e42df9053/Open_C_SDK_Plug-In.html"]Open C/C++ Plug-in[/URL] published by Forum Nokia is most likely to have a newer version of the Open C libraries than what is included on device's firmware. The Open C++ library you need was built against this new Open C release and therefore it will only work it these new Open C release is also available on the phone.
[B]Q: My Open C/C++ application works on some device but does not work on another. Why?[/B]
A: Are you deploying the needed Open C/C++ libraries with your application? You must do that instead of relying that the library is present on the target device. A frequent cause of errors is that the application is being tested on a device which already has the libraries, deployed by some other application, and thus the application would appear to work but it will later fail on some other device of the same model and with the same firmware.
[B]Q: My application needs the Open C/C++ libraries. Can I instruct the user to download them from the Internet before installing my application? Where are these sis files stored?[/B]
A: The SIS files are not available in a public repository and this is done in purpose. You must ensure that you deploy your application with all the libraries it needs and thus you must embed the SIS files in your own application's SIS.
Re: Open C FAQ
[B]Q: My Open C/C++ application has no output on device. How can I enable the standard output to be displayed on screen or redirected to a file?[/B]
A: Open C/C++ is most suitable for middleware components, the lack of GUI makes it unsuitable for any user facing application. However, for debug purposes you can install the stdioserver.sis delivered with the Open C plug-in and through its config.ini data file control the standard output and input for your application (it is actually a global config file so take care with it). For details see the release notes of the Open C/C++ plug-in.
[B]Q: My Open C/C++ application shows two icons in the task list when running. Why?[/B]
A: You are having stdioserver.sis installed on device, or even worse you are shipping it with your application. Stdioserver.sis is a debug tool, to be used only during the R&D stage of your application's life and it must not be part of your distribution. The second icon you see, in fact a default - puzzle - icon, belongs to this component and can be removed by uninstalling it.
Re: Open C FAQ
any one have open c/c++ compiler then please send me?
Re: Open C FAQ
You can find all the compilers you need for Symbian application development in the Nokia Qt SDK (GCCE) or Carbide.c++ (Nokia C/C++ compiler) and Symbian/S60 SDK (GCCE). Just download your choice of tools and follow the tutorial.