# Using Carbide.c++ and P.I.P.S.

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.

• Specify the needed P.I.P.S. libraries:
• `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.

### 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 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:

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.