S60 Open C
Compilers and IDEs Using Open C

Compilers and IDEs Using Open C

Table of Contents

How to use Carbide.c++ and Open C
Inclusion of libc.lib in the MMP file
Order of the SYSTEMINCLUDE in the MMP file
Suppressing "illegal implicit conversion error"

 


How to use Carbide.c++ and Open C

To be able to use Open C and the Carbide.c++ provided by Nokia efficiently, the user must perform the following steps:

  • Define the system include files required by Open C. This is done in the System Options view in the project properties window.
  • Specify the needed Open C libraries:
    • libc.lib must always be specified.
    • Libraries must be specified for all build configurations.

NOTE! The include paths for Open C headers must be specified as well as the used Open C libraries.

NOTE! This must be done for all possible build configurations.

Give feedback of this section

 


Inclusion of libc.lib in the MMP file

libc.lib must be included in the MMP file for both the WINSCW as well as the target. The code will compile and link for WINSCW even if libc.lib is not mentioned in the MMP file, but will fail during execution. If libc.lib is not mentioned in the MMP file for the target, the code will compile but will fail during linking.

 


Order of the SYSTEMINCLUDE in the MMP file

Carbide.c++ 1.1 does not take into account the header file inclusion order as mentioned in the MMP file. This is a typical scenario when we need the headers from both open C and libc [symbian libc]. Eventhough the order of the SYSTEMINCLUDE in the MMP file is:
epoc32\include\stdapis
epoc32\include\libc 
epoc32\include\libc will be included first followed by epoc32\include\stdapis .(It might be included on the basis of alphabetical order).

This issue can be resolved by manually changing the project properties in carbide.c++ IDE. In order to change the project properties in Carbide.c++ IDE :

  1. Go to Project
  2. Click on Property
  3. Click on C \C++ Build and choose the ToolSettings Tab

 


Suppressing "illegal implicit conversion error"

The code that makes use of implicit pointer casts will not compile with the WINSCW compiler. The compilation breaks with "illegal implicit conversion error". However, the same code will compile with gcc compiler. A work around for this problem without changing the code is to define a pragma.


©Nokia 2007

Back to top


This material, including documentation and any related computer programs, is protected by copyright controlled by Nokia. All rights are reserved. Copying, including reproducing, storing, adapting or translating, any or all of this material requires the prior written consent of Nokia. This material also contains confidential information, which may not be disclosed to others without the prior written consent of Nokia.

Nokia is a registered trademark of Nokia Corporation. S60 and logo is a trademark of Nokia Corporation. Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. Other company and product names mentioned herein may be trademarks or tradenames of their respective owners.