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.
Note: The include paths for P.I.P.S. headers must be specified as well as the used P.I.P.S. libraries.
Note: This must be done for all possible build configurations.
libc.lib
in the MMP filelibc.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.
SYSTEMINCLUDE
in
the MMP fileCarbide.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.