2017-10-04 18:37:32 +00:00
|
|
|
setup VC9 for CE:
|
|
|
|
------------------
|
|
|
|
|
|
|
|
- VC9 doesn't have any setup batchfiles that prepare the environment for compiling
|
|
|
|
with CE. You can take those from eVC4 and adapt them or write your own. This snippet
|
|
|
|
should get you going:
|
|
|
|
|
|
|
|
rem you need to adapt at least these three
|
|
|
|
set OSVERSION=WCE500
|
|
|
|
set PLATFORM=MY_OWN_PLATFORM
|
|
|
|
set TARGETCPU=MIPSII
|
|
|
|
|
|
|
|
rem the compiler is always cl.exe, different compilers are in different paths
|
|
|
|
set CC=cl.exe
|
|
|
|
rem obviously, these need to be adjusted to where you installed VS2008 and the SDKs
|
|
|
|
set VSINSTALLDIR=C:\Programme\Microsoft Visual Studio 9.0
|
|
|
|
set SDKROOT=C:\Programme\Windows CE Tools
|
|
|
|
|
|
|
|
set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_mips;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
|
|
|
|
set PLATFORMROOT=%SDKROOT%\%OSVERSION%\%PLATFORM%
|
|
|
|
|
|
|
|
rem add libs and includes from the SDK
|
|
|
|
set INCLUDE=%PLATFORMROOT%\include\%TARGETCPU%;%PLATFORMROOT%\MFC\include;%PLATFORMROOT%\ATL\include
|
|
|
|
set LIB=%PLATFORMROOT%\lib\%TARGETCPU%;%PLATFORMROOT%\MFC\lib\%TARGETCPU%;%PLATFORMROOT%\ATL\lib\%TARGETCPU%
|
|
|
|
|
|
|
|
rem add libs that came with VC9
|
|
|
|
rem Note: there are more libs and includes under ce\atlmfc, you need to add these
|
|
|
|
rem instead of the ones in the SDK if you want to use the newer version of ATL/MFC.
|
|
|
|
set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%
|
|
|
|
|
|
|
|
|
|
|
|
- The snippet below can be used to build STLport for Pocket PC 2003 (using the
|
|
|
|
Pocket PC 2003 SDK shipped with Visual Studio 2008, this is the SDK used when
|
|
|
|
compiling programs from within the IDE):
|
|
|
|
|
|
|
|
set OSVERSION=WCE420
|
|
|
|
set PLATFORM=POCKET PC 2003
|
|
|
|
set TARGETCPU=ARMV4
|
|
|
|
|
|
|
|
rem the compiler is always cl.exe, different compilers are in different paths
|
|
|
|
set CC=cl.exe
|
|
|
|
|
|
|
|
rem obviously, these need to be adjusted to where you installed VS2008
|
|
|
|
set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0
|
|
|
|
set SDKROOT=%VSINSTALLDIR%\SmartDevices\SDK
|
|
|
|
|
|
|
|
set PATH=%VSINSTALLDIR%\VC\ce\bin\x86_arm;%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\Common7\IDE;%PATH%
|
|
|
|
set PLATFORMROOT=%SDKROOT%\PocketPC2003
|
|
|
|
|
|
|
|
rem add libs and includes from the SDK
|
|
|
|
set INCLUDE=%PLATFORMROOT%\include
|
|
|
|
set LIB=%PLATFORMROOT%\lib\%TARGETCPU%
|
|
|
|
|
|
|
|
rem add libs that came with VC9
|
|
|
|
set INCLUDE=%INCLUDE%;%VSINSTALLDIR%\VC\ce\atlmfc\include
|
|
|
|
set LIB=%LIB%;%VSINSTALLDIR%\VC\ce\lib\%TARGETCPU%;%VSINSTALLDIR%\VC\ce\atlmfc\lib\%TARGETCPU%
|
|
|
|
|
|
|
|
|
|
|
|
You should now be able to run cl.exe for the target you expected.
|
|
|
|
|
|
|
|
- The cross compilers of VC9 are the same version as for the native target, i.e. MSC15.
|
|
|
|
|
|
|
|
- In order for STLport to recognize which target you are compiling for, you need to have
|
|
|
|
some macros defined, e.g. for the target architecture. The compilers do that partially on
|
|
|
|
their own, but not sufficiently. Therefore, STLport requires these defines:
|
|
|
|
|
|
|
|
-- These are generally set for CE:
|
|
|
|
_UNICODE;UNICODE;_WIN32;WIN32;UNDER_CE;WINCE;
|
|
|
|
-- This one uses an environment variable to set the CE version:
|
|
|
|
_WIN32_WCE=$(CEVER);
|
|
|
|
-- These are used to help STLport recognise the target architecture:
|
|
|
|
$(ARCHFAM);$(_ARCHFAM_);$(INSTRUCTIONSET)
|
|
|
|
Note that the instructionset is not strictly needed for x86 but definitely for ARM. It
|
|
|
|
doesn't hurt for x86 though, so I'd always set these in any new project.
|
|
|
|
-- For release builds:
|
|
|
|
NDEBUG;
|
|
|
|
-- For debug builds:
|
|
|
|
DEBUG;_DEBUG;
|
|
|
|
-- For debug builds with additional STLport diagnostics:
|
|
|
|
DEBUG;_DEBUG;_STLP_DEBUG;
|
|
|
|
-- For MFC applications:
|
|
|
|
_AFXDLL;
|
|
|
|
|
|
|
|
- Further settings:
|
|
|
|
Code generation: Multithreaded [Debug] DLL
|
|
|
|
Language: enable RTTI
|
|
|
|
Optimization: maximise speed and enable whole program optimization for release builds
|
|
|
|
|
|
|
|
- Linker settings:
|
|
|
|
Ignore specific libraries: libc.lib;libcd.lib
|
|
|
|
Commandline: /SUBSYSTEM:WINDOWSCE
|
|
|
|
Optimisation: /LTCG for release builds
|
|
|
|
|
|
|
|
- Resource compiler:
|
|
|
|
Define: UNDER_CE;WINCE;_WIN32_WCE=$(CEVER)
|