To be able to use P.I.P.S. and Carbide.c++ efficiently, perform the following steps:
Define the system include files required by P.I.P.S.. This is done in the System Options view in the Project Properties window.
libc.lib must always be specified.
Libraries must be specified for all build configurations.
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.
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 P.I.P.S. and estlib.lib. Although, 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:
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.