Symbian3/SDK/Source/GUID-FF6846AA-7E8B-40DC-B6EC-32A8550F4942.dita
changeset 0 89d6a7a84779
equal deleted inserted replaced
-1:000000000000 0:89d6a7a84779
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-FF6846AA-7E8B-40DC-B6EC-32A8550F4942" xml:lang="en"><title>Using
       
    13 Carbide.c++ and P.I.P.S.</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>To be able to use P.I.P.S. and Carbide.c++ efficiently, perform the following
       
    15 steps:</p>
       
    16 <ul>
       
    17 <li><p>Define the system include files required by P.I.P.S.. This is done
       
    18 in the <uicontrol>System Options</uicontrol> view in the <uicontrol>Project
       
    19 Properties</uicontrol> window.</p></li>
       
    20 <li><p>Specify the needed P.I.P.S. libraries:<ul>
       
    21 <li><p><filepath>libc.lib</filepath> must always be specified.</p></li>
       
    22 <li><p>Libraries must be specified for all build configurations.</p></li>
       
    23 </ul>  </p></li>
       
    24 </ul>
       
    25 <note>The include paths for P.I.P.S. headers must be specified as well as
       
    26 the used P.I.P.S. libraries. </note>
       
    27 <note>This must be done for all possible build configurations.</note>
       
    28 <section id="GUID-140C883C-819A-472A-8759-26566A62941C">       <title>Inclusion
       
    29 of <filepath>libc.lib</filepath> in the MMP file</title><p><filepath>libc.lib</filepath> must
       
    30 be included in the MMP file for both the <codeph>WINSCW</codeph> as well as
       
    31 the target. The code will compile and link for <codeph>WINSCW</codeph> even
       
    32 if <filepath>libc.lib</filepath> is not mentioned in the MMP file, but will
       
    33 fail during execution. If <filepath>libc.lib</filepath> is not mentioned in
       
    34 the MMP file for the target, the code will compile but will fail during linking.</p> 
       
    35    </section>
       
    36 <section id="GUID-DB21F39C-8FF9-47BF-BC56-8599F22F330E"><title>Order of the <codeph>SYSTEMINCLUDE</codeph> in
       
    37 the MMP file</title><p>Carbide.c++ 1.1 does not take into account the header
       
    38 file inclusion order as mentioned in the MMP file. This is a typical scenario
       
    39 when the user needs the headers from both P.I.P.S. and <filepath>estlib.lib</filepath>.
       
    40 Although, the order of the <codeph>SYSTEMINCLUDE</codeph> in the MMP file
       
    41 is:</p><codeblock xml:space="preserve">epoc32\include\stdapis
       
    42 epoc32\include\libc </codeblock><p><filepath>epoc32\include\libc</filepath> will
       
    43 be included first followed by <filepath>epoc32\include\stdapis</filepath>.
       
    44 (It might be included on the basis of alphabetical order). </p><p>This issue
       
    45 can be resolved by manually changing the project properties in carbide.c++
       
    46 IDE. In order to change the <uicontrol>Project Properties</uicontrol> in Carbide.c++
       
    47 IDE:</p><ol>
       
    48 <li id="GUID-E280C86C-F29C-45E2-BCA1-A0161790578A"><p>Go to <uicontrol>Project</uicontrol>.</p></li>
       
    49 <li id="GUID-BED1ED11-BB1B-4C08-B4AD-ABF043A69955"><p>Click on <uicontrol>Property</uicontrol>.</p></li>
       
    50 <li id="GUID-F0A81703-9804-4A5C-8D25-FBF266AF2382"><p>Click on <uicontrol>C
       
    51 \C++. Build</uicontrol> and choose the <uicontrol>ToolSettings</uicontrol> Tab </p></li>
       
    52 </ol></section>
       
    53 <section id="GUID-7DCA8B26-BC6F-4709-AA45-6316F0B5CEDB"><title>Suppressing
       
    54 "illegal implicit conversion error"</title><p>The code that makes use of implicit
       
    55 pointer casts will not compile with the <codeph>WINSCW</codeph> compiler.
       
    56 The compilation breaks with "illegal implicit conversion error". However,
       
    57 the same code will compile with GCC compiler. A work around for this problem
       
    58 without changing the code is to define a pragma.</p></section>
       
    59 </conbody></concept>