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 the user needs the headers from both open C and libc [symbian libc]. Although, the order of the SYSTEMINCLUDE in the MMP file is:
epoc32\include\
epoc32\include\stdapis
epoc32\include\ 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.


Back to top

Copyright ©2008 Nokia Corporation. All rights reserved. This documentation can be used in the connection with this Product to help and support the user.