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