Home | History | Annotate | Download | only in doc
      1 setup VC8 for CE:
      2 ------------------
      3 
      4 - VC8 doesn't have any setup batchfiles that prepare the environment for compiling
      5 with CE. You can take those from eVC4 and adapt them or write your own. This snippet
      6 should get you going:
      7 
      8   rem you need to adapt at least these three
      9   set OSVERSION=WCE500
     10   set PLATFORM=MY_OWN_PLATFORM
     11   set TARGETCPU=MIPSII
     12 
     13   rem the compiler is always cl.exe, different compilers are in different paths
     14   set CC=cl.exe
     15   rem obviously, these need to be adjusted to where you installed VS2005 and the SDKs
     16   set VSINSTALLDIR=C:\Programme\Microsoft Visual Studio 8
     17   set SDKROOT=C:\Programme\Windows CE Tools
     18 
     19   set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_mips;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
     20   set PLATFORMROOT=%SDKROOT%\%OSVERSION%\%PLATFORM%
     21 
     22   rem add libs and includes from the SDK
     23   set INCLUDE=%PLATFORMROOT%\include\%TARGETCPU%;%PLATFORMROOT%\MFC\include;%PLATFORMROOT%\ATL\include
     24   set LIB=%PLATFORMROOT%\lib\%TARGETCPU%;%PLATFORMROOT%\MFC\lib\%TARGETCPU%;%PLATFORMROOT%\ATL\lib\%TARGETCPU%
     25 
     26   rem add libs that came with VC8
     27   rem Note: there are more libs and includes under ce\atlmfc, not sure if these are needed.
     28   set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%
     29   
     30   
     31 - The snippet below can be used to build STLport for Pocket PC 2003 (using the
     32   Pocket PC 2003 SDK shipped with Visual Studio 2005, this is the SDK used when
     33   compiling programs from within the IDE):
     34 
     35   set OSVERSION=WCE420
     36   set PLATFORM=POCKET PC 2003
     37   set TARGETCPU=ARMV4
     38 
     39   rem the compiler is always cl.exe, different compilers are in different paths
     40   set CC=cl.exe
     41 
     42   rem obviously, these need to be adjusted to where you installed VS2005
     43   set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8
     44   set SDKROOT=%VSINSTALLDIR%\SmartDevices\SDK
     45 
     46   set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_arm;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
     47   set PLATFORMROOT=%SDKROOT%\PocketPC2003
     48 
     49   rem add libs and includes from the SDK
     50   set INCLUDE=%PLATFORMROOT%\include
     51   set LIB=%PLATFORMROOT%\lib\%TARGETCPU%
     52 
     53   rem add libs that came with VC8
     54   set INCLUDE=%INCLUDE%;%VSINSTALLDIR%\VC\ce\atlmfc\include
     55   set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%;%VSINSTALLDIR%\VC\ce\atlmfc\lib\%TARGETCPU%
     56 
     57 
     58 You should now be able to run cl.exe for the target you expected.
     59 
     60 - The cross compilers of VC8 are the same version as for the native target, i.e. MSC14.
     61 
     62 - The cross compiler for MIPS has the same bug as mentioned in doc/README.evc4 and
     63 the same workaround applies. However, using 'whole program optimization', it results
     64 in an error in the link phase.
     65 
     66 - In order for STLport to recognize which target you are compiling for, you need to have
     67 some macros defined, e.g. for the target architecture. The compilers do that partially on
     68 their own, but not sufficiently. Therefore, STLport requires these defines:
     69 
     70  -- These are generally set for CE:
     71   _UNICODE;UNICODE;_WIN32;WIN32;UNDER_CE;WINCE;
     72  -- This one uses an environment variable to set the CE version:
     73   _WIN32_WCE=$(CEVER);
     74  -- These are used to help STLport recognise the target architecture:
     75   $(ARCHFAM);$(_ARCHFAM_);$(INSTRUCTIONSET)
     76  Note that the instructionset is not strictly needed for x86 but definitely for ARM. It
     77  doesn't hurt for x86 though, so I'd always set these in any new project.
     78  -- For release builds:
     79   NDEBUG;
     80  -- For debug builds:
     81   DEBUG;_DEBUG;
     82  -- For debug builds with additional STLport diagnostics:
     83   DEBUG;_DEBUG;_STLP_DEBUG;
     84  -- For MFC applications:
     85   _AFXDLL;
     86 
     87 - Further settings:
     88  Code generation: Multithreaded [Debug] DLL
     89  Language: enable RTTI
     90  Optimization: maximise speed and enable whole program optimization for release builds
     91 
     92 - Linker settings:
     93  Ignore specific libraries: libc.lib;libcd.lib
     94  Commandline: /SUBSYSTEM:WINDOWSCE
     95  Optimisation: /LTCG for release builds
     96 
     97 - Resource compiler:
     98  Define: UNDER_CE;WINCE;_WIN32_WCE=$(CEVER)
     99 
    100