Run Qt application on Windows CE 6.0 on X86 (Intel Atom processor) platform.
-
wrote on 12 Oct 2011, 22:13 last edited by
Hi:
On Windows CE platform, Qt support a lots ARM platform or Windows CE 5.0 X86 platfrom.
However, my project need to run on the our-owned proprietary platform (Intel X86) with Windows CE 6.0 R3.Did any porting documentations to different platform. I think that should be simple step rebuild the Qt code with "Our-owned" Windows CE 6.0 SDK. However I don't know how to start!!!
Please any help.Thanks
YDLU -
wrote on 13 Oct 2011, 17:37 last edited by
This is my build.bat file I used to build Qt to WinCE 6.0 for ARM architecture
SET PATH=C:\Qt\colibri-4.6.1\bin;C:\Qt\colibri-4.6.1\include;%PATH%
call vsvars32.bat
nmake confclean
configure.exe -static -no-accessibility -no-stl -no-qt3support -no-opengl -qt-libpng -no-phonon -no-scripttools -platform win32-msvc2008 -xplatform wince60colibri-armv4i-msvc2008 -debug-and-release
set INCLUDE=D:\Microsoft Visual Studio 8\VC\ce\include;C:\Program Files\Windows CE Tools\wce500\Colibri\Include\Armv4i
set LIB=D:\Microsoft Visual Studio 8\VC\ce\lib\armv4i;C:\Program Files\Windows CE Tools\wce500\Colibri\Lib\ARMV4I
set PATH=D:\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;%PATH%nmake
The first you must setup an appropriate SDK for your platform.
The second specify -xplatform wince60standard-x86-msvc2008
The third scpecify INCLUDE and LIB paths to your SDK
Try to build Qt -
wrote on 14 Oct 2011, 18:49 last edited by
Hi picasoft:
my first step to port Qt to Windows CE is build a Windows CE 5 (standard SDK) on X86 using VS2008 build tools:
There is my steps:
(1st step: make sure just use VS2008 build tools)
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Qt\4.7.4\bin;C:\Qt\qt-everywhere-opensource-src-4.7.4\bin;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;
set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include;
set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;(2nd Step: configure Qt 4.7.4 build)
cd c:\qt\qt-everywhere-opensource-src-4.7.4
configure -platform win32-msvc2008 -xplatform wince50standard-x86-msvc2008(3rd step:)
setcepaths wince50standard-x86-msvc2008(4th step: got a basic errro... )
nmake(THE NMAKE ERRORS: )
cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -W3 -w34100 -w34189 -MP -DQT_THREAD_SUPPORT -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -D_USE_MATH_DEFINES -DQT_NO_DYNAMIC_CAST -I"....\include" -I"tmp" -I"....\include\QtCore" -I"c:\Qt\qt-everywhere-opensource-src-4.7.4\include\qtmain" -I"tmp\rcc\debug_shared" -I"tmp" -I"....\include\ActiveQt" -I"tmp\moc\debug_shared" -I"....\mkspecs\win32-msvc2008" -Fotmp\obj\debug_shared\ @C:\DOCUME~1\uidk5291\LOCALS~1\Temp\nm410.tmp
qtmain_win.cpp
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winnt.h(2975) : error C2146: syntax error : missing ';' before identifier 'ContextRecord'
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winnt.h(2975) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winnt.h(2975) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winbase.h(1405) : error C2146: syntax error : missing ';' before identifier 'LPCONTEXT'
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winbase.h(1405) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winbase.h(1405) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winbase.h(2089) : error C2061: syntax error : identifier 'LPCONTEXT'
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winbase.h(2097) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winbase.h(2097) : error C2143: syntax error : missing ',' before '*'
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\excpt.h(63) : error C2040: 'PCONTEXT' : '_CONTEXT *' differs in levels of indirection from 'int'
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\excpt.h(66) : error C2378: 'LPCONTEXT' : redefinition; symbol cannot be overloaded with a typedef
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winbase.h(1405) : see declaration of 'LPCONTEXT'do you could give me some advise where and what I did wrong?
Thanks
YDLU -
wrote on 16 Oct 2011, 14:04 last edited by
First:
Visual Studio 2008 default installation path is "..\Program Files\Microsoft Visual Studio 9.0" ( not 8)Second:
Maybe "setcepaths wince50standard-x86-msvc2008" command doesn't work properly.
Try to specify platform depended INCLUDE, LIB and PATH variables manually.
For example
set INCLUDE=C:\Microsoft Visual Studio 9.0\VC\ce\include;C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\Include\x86
...To setup environment variables use vcvars32.bat (at the path C:\Microsoft Visual Studio 9.0\Common7\Tools) or run your Qt build script under Visual Studio Command Promp
Read this instructions http://doc.qt.nokia.com/4.6/install-wince.html
Good Luck,
picasoft -
wrote on 17 Oct 2011, 16:24 last edited by
Thanks you point out the error.
After I correct the path, lib, the error still there. So I examed the first error:cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -W3 -w34100 -w34189 -MP -DQT_THREAD_SUPPORT -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -D_USE_MATH_DEFINES -DQT_NO_DYNAMIC_CAST -I"..\..\include" -I"tmp" -I"..\..\include\QtCore" -I"c:\Qt\qt-everywhere-opensource-src-4.7.4\include\qtmain" -I"tmp\rcc\debug_shared" -I"tmp" -I"..\..\include\ActiveQt" -I"tmp\moc\debug_shared" -I"..\..\mkspecs\win32-msvc2008" -Fotmp\obj\debug_shared\ @C:\DOCUME~1\uidk5291\LOCALS~1\Temp\nm1DD.tmp
qtmain_win.cpp
C:\Program Files\Windows CE Tools\wce500\STANDARDSDK_500\include\x86\winnt.h(2975) : error C2146: syntax error : missing ';' before identifier 'ContextRecord'That mean the "X86" was not defined!
I checked the "wince50standard-x86-msvc2008" and "wince50standard-x86-msvc2005" both folder about the "qmake.conf" files. The "X86" was defined, but not on the "cl" options?
Someone knows where and how the "DEFINES" connect to the compiler?
Thanks
YDLU -
wrote on 28 Mar 2012, 07:59 last edited by
Hi,
Sorry for the late reply, but i met a similar problem with my WinCE SDK. If you have a defined QMAKESPEC environment variable & if you specify a different -xplatform content on the configure cmdline, the configure seems to take the content of the QMAKESPEC. I get the same error than yours. A configure screen log indicates that the -xplatform is specified on the cmdline but the tool keeps the QMAKESPEC definition. Let's try to remove the QMAKESPEC content or let's give it the target mkspecs value, it should work.
Best regards,
David.