Run Qt application on Windows CE 6.0 on X86 (Intel Atom processor) platform.



  • 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



  • 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



  • 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



  • 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



  • 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



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


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.